Jedna vec je cist, druha rozumet.
Cela problematika je dost slozita, predstava ze mam "soubor ktery se nahraje do pameti" platila mozna tak nekdy pred deseti lety. Dnes je to podstatne slozitejsi. Teoreticky vzalo, v zasade RAM neni vubec potreba, veskera virtualni pamet muze byt fyzicka ulozena v pagefile na disku. Stacilo by pak pouze 4kB RAM pro uchovani aktualni stranky, aktualniho threadu a aktualni adresy kodu, ktery procesor prave provadi. Melo by to ovsem v praxi jednu vadu, bylo by to neskutecne pomale
Z toho duvodu se aktualni, posledni a nejcasteji pouzivane stranky virtualni pameti uchovavaji v RAM. K tomu slozi pomerne slozite algoritmy, zalozene na statistikach a "historii" predchoziho behu aplikace a podobne. Takze muzeme mit druhy extrem, veskerou RAM pouzijeme pro uchovani vsech stranek virtualni pameti (a pagefile tedy nepouzijeme). To vypada desne lakave, ale ma to opet jednu vadu, vysledna subjektivni rychlost nebude nikterak oslniva
Nemluve o tom, ze nektera aplikace muze alokovat vice virtualni pameti a tim padem by RAM nestacila a doslo k vyjimce (v extremnim pripade na urovni kernel modu). Je horsi nebezpeci takove fatalni chyby nebo to, ze nemohu "vypnout" pagefile ?
Typicka aplikace, krom toho ze bezi (provadi se nejaky kod) take pracuje se soubory. Disk je pomaly, cache v HDD stale mala. Z toho duvodu je efektivni, pouzit cast RAM jako cache souboru se kterymi se prave pracuje.
Nejslozitejsi uloha je, jak tenhle koktejl vlastne namichat. Kolik % RAM vyuzivat na diskovou cache a kolik pro stranky virtualni pameti. Navic to neni pevna hodnota, meni se silne v zavislosti na tom, kolik prave bezi procesu, jak velky pocet "vypadku stranek" (tedy alokace a uvolnovani virt.pameti) ty procesy generuji, k jak velke fragmentaci dochazi, kolik je otevreno souboru, jak casto se z nich cte/zapisuje atd. Neexistuje idealni algoritmus, nicmene od Windows 2000 je sprava pameti pro drtivou vetsinu pripadu velmi dobra.
Pokud je to mozne, tak je vhodne nastavit minimalni velikost pagefile na hodnotu, kterou prumerne dosahuji. Dynamicke zvetseni velikosti pagefile za behu je prave relativne narocne, takze pri spatne (male) hodnote je vysledny efekt spise negativni. Sprava pameti bude stale balancovat mezi vyuzitim RAM pro diskovou cache a stranky virtualni pameti (fyzickou RAM kterou nelze strankovat a pouzivaji ji zpravidla kernel drivery muzeme zanedbat, tvori sotva 1% velikosti)
Pro zjisteni realnych hodnot se nejlepe hodi "Performance Monitor", ktery je v Control Panel -> Administrative Tools -> Performance. Tam jsou pak jednotliva "pocitadla" serazena do kategorii, zpravidla je u kazdeho i popis ktery vysvetluje co to presne ukazuje. Prijemnou zabavu