Q: Miksi Vista vie aivan käsittämättömät määrät keskusmuistia verrattuna Windows XP:hen? A: Windows Vistan muistinkäsittely eroaa aiemmasta Windows-maailman toteutuksesta huomattavasti, eivätkä lukemat ole aivan suoraan vertailukelpoisia Vistan ja vaikkapa Windows XP:n välillä. Pitää paikkansa että Vista vie muistia keskimäärin huomattavasti enemmän kuin Windows XP, eikä mikään muistimäärä tunnu "riittävän", vaan Vista syö aina kaiken tarjolla olevan muistin. Miksi ihmeessä, onko sen koodi todellakin näin surkeata? Ei, vaan koodi on kehittynyt Windows XP:n ajoilta huomattavasti. Vastausta pohdittaessa pitää lähteä istuskelemaan sen peruskysymyksen äärelle, että mitä varten koneen keskusmuisti on olemassa. Periaatteessa koneen keskusmuisti (RAM) on aivan samanlainen cache (välimuisti), kuin vaikkapa suorittimen ytimestä kaksin kappalein löytyvät cachet, eli L1 ja L2. Välimuistisuunnittelun tärkein sääntö on, että tyhjä välimuisti on hukattua välimuistia. Tyhjästä välimuistista ei yksinkertaisesti ole mitään hyötyä, tyhjä välimuisti on vain kallis muistipiiri joka imee sähköä eikä anna vastineeksi mitään. Välimuistin ainoa tarkoitus on täyttää itsensä mahdollisimman nopeasti tiedolla jota kaikkein todennäköisimmin tullaan seuraavaksi tarvitsemaan, ja tarjota tietoa suorittimelle aina kun sitä kysytään - toivon mukaan mahdollisimman tiuhaan, sillä jokainen välimuistin ohi menevä tietokysely, eli kiintolevyltä saakka valuva tieto on hidasta - karkeasti ottaen voidaan sanoa että keskusmuisti on 50 kertaa nopeampaa kuin kiintolevy. Windows ei ole ennen ymmärtänyt tätä asiaa. Nyt se ymmärtää. Windows Vista -koneen keskusmuistin käyttö on aina mahdollisimman lähellä sataa prosenttia, vaikka muistia koneessa olisi kuinka paljon. Tämä johtuu ominaisuudesta nimeltä SuperFetch, joka sisältää heuristiikoita ja tilastotietoa prosessien käyttöasteista tunnistaakseen kaikkein yleisimmin käytetyt tiedot jotka sitten ladataan keskusmuistiin odottamaan että suoritin niitä pyytää. Windows Vistan SuperFetchin algoritmit ottavat mm. huomioon vuorokaudenajan katsoessaan että mitä tiedostoja keskusmuistiin lataavat käyttäjän entisen käyttäytymisen perusteella. Periaatteessa samantyyppisellä ajatuksella toimiva järjestelmä on ollut Linuxin kernelissä jo pitkään, mutta Vistan muistinhallinta on oikeastaan jopa Linuxia hienostuneempaa. Ero löytyy siitä, että Linuxin muistinhallinta ei sisällä minkäänlaisia heuristiikoita eikä ala itsestään täyttämään koneen keskusmuistia bootin jälkeen, vaan toimii enemmänkin niin, että kaikki tieto mikä keskusmuistiin luetaan, jätetään sinne, kunnes muisti tulee täyteen, jolloin ylikirjoitetaan kauiten tyhjänpanttina ollutta tietoa. Toki tämä on karkea selitys, muttta kuvaa kyllä järjestelmien eroja riittävällä tasolla. Paljonko muistia Vistan käyttöön sitten ihan oikeasti tarvitaan? Kone varmasti boottaa Microsoftin ilmoittamalla vähimmäisvaatimus-512 Mt:llä, mutta sulavaan käyttöön suositeltava määrä on yksi giga.