Varför kan du redigera en 250 gb-fil på en 16GB notebook

0
263
ani-obottleneck-5611.jpg

En i/O-flaskhals.

Robin Harris

Bakgrund

För decennier fysiska minnet var otroligt kostsamt. Som ett resultat av många maskiner kom med minne kapacitet som idag ser skrattretande. Inte gigabyte, eller megabyte, men kilobyte. Den minsta IBM 360 stordator gjort med så lite som 8KB minne som på 1960-talet. Även 1980, RAM kostar över $1000 megabyte. Idag är det ett halvt öre.

Eftersom minnen var så liten, varje program hade shoehorned till den tillgängliga kapaciteten. Program som gick för att utveckla längder för att flytta segment i och ut ur det fysiska RAM-minne.

Men på 1970-talet arkitekter hade en lysande idé: att utöka det fysiska minnet genom att virtualisera det och med hjälp hårddisk lagring för extra kapacitet. Operativsystemet skulle hantera problemet med att flytta programmet segment i och ut ur det fysiska minnet, spara programmerare oerhörda sorg.

Och det gjorde de. IBM: s 370-serien MVS (Flera Virtual Storage) och DEC är VMS (Virtual Memory System, som körs på den Virtuella Address Extension (VAX) hårdvara) var två populära minne för virtual memory system. På den tiden detaljer-såsom bästa sida storlekar och begränsa stryk — var omdebatterad.

Över tid, den bästa runt omkring mönster var bevisat, optimerad, och kopieras. Idag virtuellt minne stöd är inbyggt i x86-processorer — och de flesta andra Processorer — och operativsystem som stöds. Som ett resultat de flesta människor har ingen aning om att det ens existerar, det är så smidig och effektiv.

Virtuellt minne grunderna

När du skjuter in ett program, operativsystem tilldelar den en virtuell adressrymd. I Windows 8.1 och senare med 64-bitars program, som adressutrymme är en rejäl 128TB, medan macOS erbjuder en ginormous 18 exabytes av adresserbara utrymme för 64-bitars processer. 32-bitars program är begränsat till maximalt 4 gb virtuellt minne och ibland mindre.

Operativsystemet — Windows, Linux eller macOS-då sköter virtuell till fysisk adress översättning och byta in och ut ur det fysiska RAM av aktiva program segment. Typiskt segment (eller sidor), är 4 eller 8KB. CPU ger hårdvara hjälpa till OS för att hålla reda på miljoner eller även miljarder sidor.

Hur gör OS veta vilka sidor som ska hålla i det fysiska minnet? OS håller reda på de senast använda sidor för varje process och eftersom efterfrågan på mer fysiskt minne utvecklas, byter ut den minst använda sidor för att frigöra RAM-minne för mer aktiva sidor.

Naturligtvis, den hastighet med vilka sidor som kan växlas har en enorm inverkan på systemets prestanda. Det är därför avancerade PCIe/NVMe enheter, till exempel de i den senaste MacBook pro-är avgörande.

Lagring fördröjning är avgörande

Med tillgång gånger mäts i mikrosekunder, den tid det tar att byta en sida är nedsatt från 6-10 millisekunder på en hårddisk för att, eventuellt (jag har inte sett tillgång gånger för nya MacBook Pro Ssd), 10 µsec — tusen gånger snabbare. Eftersom många PCIe/NVMe demos har tillgång gånger i 3-4 µsec område för den nya Mac Ssd-enheter kan vara 2-3 tusen gånger snabbare än en hårddisk.

Nyare Mac-datorer med SSDs. Igen, latens riktmärken är knappa, men andra högpresterande SATA Ssd-enheter har latenser i 100-150 µsec utbud, vilket gör den nya Mac Ssd potentiellt 10-50x snabbare. Summan av kardemumman är att mycket snabbt lagring gör virtuellt minne springa snabbare och gör en tungt lastad system mycket mer lyhörd och hög prestanda.

Som alla system, en virtual memory system kan vara överbelastad. Om du snabbt växla mellan minneskrävande appar, som till exempel en video editor, Photoshop, ett DAW, en video effects program, och en komprimering verktyg, ditt system kan sakta ner som swap trafik överväldigar i/O-systemet. Pro tips: gör inte det!

Lagring ta Bitar

Från en banbrytande funktion som på 70-talet för att allestädes närvarande och glömt i ’10s, virtuellt minne är den teknik som gör det möjligt för din bärbara eller stationära för att köra datamängder som är långt utöver RAM-storlek. Jag brukar redigera 250GB ProRes video-filer på min fem år gamla 16GB MacBook Pro — utan maxing ut RAM-användning.

Min erfarenhet är att de flesta problem med prestanda som pro-apps har inte virtuellt minne relaterade — förutsatt att tillräcklig lagringskapacitet — men kretsar kring ineffektiv kod, otillräcklig CPU-och grafik-prestanda, eller andra flaskhalsar system drivrutiner eller nätverk. I framtiden, i och med tillkomsten av hög prestanda icke-flyktigt RAM, kan vi kanske göra sig av med virtual memory system helt och hållet och ersätta den med flera terabyte viktigaste minnen att kombinera RAM-minne och lagring i en enda adress.

Men det är minst fem år och en historia för ett annat inlägg.

Artiga kommentarer välkomna, naturligtvis.