Waarom u kunt een 250GB-bestand op een 16GB notebook

0
163
ani-obottleneck-5611.jpg

Een I/O-knelpunt.

Robin Harris

Achtergrond

Voor decennia fysieke geheugen is ongelooflijk duur. Als een resultaat van vele machines kwam met geheugen capaciteit die vandaag de dag kijken lachwekkend. Niet gigabyte, of megabytes, maar kilobytes. De kleinste IBM 360 mainframe doen met zo weinig als 8KB geheugen in de jaren 1960. Zelfs in 1980, RAM kosten meer dan $1000 per megabyte. Vandaag de dag is het halve cent.

Omdat herinneringen waren zo klein, elk programma was te klein voor twee personen in de beschikbare capaciteit. Programma ‘ s ging het uitwerken van lengtes te verplaatsen segmenten van fysieke geheugen (RAM).

Maar in de jaren 1970 architecten had een briljant idee: uitbreiden van het fysieke geheugen door de virtualisatie en het gebruik van opslag op harde schijf voor de toegevoegde capaciteit. Het besturingssysteem zou omgaan met het probleem van het verplaatsen programma segmenten in en uit het fysieke geheugen opslaan programmeurs onnoemelijke verdriet.

En dat deden ze. IBM 370 serie MVS (Multiple Virtual Storage) en DEC VMS (Virtuele Geheugen van het Systeem, die op de Virtual Address Extension (VAX) hardware) werden twee populaire instantiations van het virtuele geheugen systemen. Op het moment dat de gegevens, zoals beste de grootte van de pagina en het beperken van dorsen, — waren fel bediscussieerd.

Na verloop van tijd, de beste ontwerpen werden bewezen, geoptimaliseerd en gekopieerd. Vandaag virtueel geheugen ondersteuning is ingebouwd in de x86-processors — en de meeste andere Cpu ‘ s — en ondersteunde besturingssystemen. Als gevolg dat de meeste mensen hebben geen idee dat het nog bestaat, het is zo naadloos en efficiënt.

Virtueel geheugen basics

Wanneer u start een toepassing, het besturingssysteem kent het een virtuele adresruimte. In Windows 8.1 en hoger met 64-bits apps, die adresruimte is een forse 128TB, terwijl macOS biedt een gigantische 18 exabytes van adresseerbare ruimte voor 64-bits processen. 32-bits apps zijn beperkt tot een maximum van 4 gb virtueel geheugen en soms minder.

Het besturingssysteem — Windows, Linux of macOS — beheert vervolgens de virtuele naar fysieke adres vertaling en wisselen in-en uitzoomen van het fysieke RAM-geheugen van actieve programma segmenten. Meestal worden de segmenten (of pagina ‘ s), 4 of 8 KB. De CPU biedt hardware helpen om de OS te houden van miljoenen of zelfs miljarden pagina ‘ s.

Hoe werkt het OS weten welke pagina ‘ s te houden in het fysieke geheugen? De OS houdt de sporen bij van de minst recent gebruikte pagina ‘s voor elk proces en naarmate de vraag naar meer fysiek geheugen ontwikkelt zich, swaps uit de minst gebruikte pagina’ s RAM vrij te maken voor de meer actieve pagina ‘ s.

Natuurlijk is de snelheid waarmee de pagina ‘ s kunnen worden verwisseld heeft een enorme impact op de prestaties van het systeem. Dat is de reden waarom de geavanceerde PCIe/NVMe schijven — zoals die in de nieuwste MacBook pro ‘ s — zijn van vitaal belang.

Opslag latency is cruciaal

Met toegang keer gemeten in microseconden, de tijd die het duurt om te wisselen van een pagina is verlaagd van 6-10 milliseconden op een harde schijf, mogelijk (ik heb het niet gezien toegangstijden voor de nieuwe MacBook Pro Ssd ‘ s), 10 µsec — duizend keer sneller. Sinds vele PCIe/NVMe demo ‘s hebben toegang keer in de 3-4 µsec bereik, de nieuwe Mac Ssd’ s kunnen worden 2-3 duizend keer sneller dan een harde schijf.

Meer recente Macs gebruik van Ssd ‘ s. Nogmaals, de latentie benchmarks zijn schaars, maar andere high performance SATA Ssd ‘s hebben latencies in de 100-150 µsec bereik, waardoor de nieuwe Mac Ssd’ s mogelijk 10-50x sneller. De bottom line is dat zeer snelle opslag maakt het virtuele geheugen sneller en maakt een systeem zwaar belast is en nog veel meer responsief en performant.

Zoals elk systeem, een virtuele geheugen van het systeem kan worden overbelast. Als je snel schakelen tussen geheugen-intensieve applicaties, zoals een video-editor, Photoshop, een DAW, een video-effecten programma, en een compressie tool, kan uw systeem vertragen als de swap verkeer overdondert de I/O-systeem. Pro-tip: doe dat niet!

De Opslag van Bits nemen

Van een cutting edge-functie in de jaren ’70 aan alomtegenwoordig en vergeten in de ’10s, virtueel geheugen is de technologie die het mogelijk maakt uw notebook of desktop te draaien gegevenssets die manier buiten het RAM-geheugen. Ik heb vaak het bewerken van 250GB ProRes video bestanden op mijn vijf jaar oude MacBook Pro 16GB — zonder maxing out RAM gebruik.

In mijn ervaring zijn de meeste problemen met de prestaties die pro-apps hebben geen virtuele geheugen gerelateerd is — in de veronderstelling dat er voldoende capaciteit — maar draaien rond inefficiënte code, onvoldoende CPU of grafische prestaties, of andere knelpunten in het systeem zitten in de drivers of netwerken. In de toekomst, met de komst van high-performance non-volatile RAM, kunnen we in staat zijn om weg te doen met het virtuele geheugen systemen helemaal, te vervangen met een multi-terabyte belangrijkste herinneringen die combineren RAM en opslag in één adres ruimte.

Maar dat is ten minste vijf jaar uit en een verhaal voor een andere post.

Hoffelijk opmerkingen van harte welkom, natuurlijk.