Hvordan å rydde opp Windows File Cache

September 28

Hvordan å rydde opp windows filhurtigbufferen

For å være ærlig, har jeg ikke funnet en fin løsning for det, er at: a (kombinasjon av) windows api som tvinger systemet til å tømme bufferen.

Men er ganske lett å tømme bufferen. Alt vi trenger å gjøre er å finne ut hvor mange minne er tildelt, og hvor mange minne bør være gratis.
Disk cache regnes ikke som allokert minne.
Så snart en (stor) blokk med minne er tildelt, vil vinduer (2000) gjør plass ved å fjerne bufrede elementer.
Dette viser hvor integrert minneadministrasjon og fil caching system er.

Dessverre er det ikke en enkel måte å lese størrelsen på systemlageret. Dette må gjøres ved å lese vinduer ytelse tellere, og er ganske mye arbeid det virker, så jeg gjorde ikke finne ut at en del ennå.

Men det vi vet er hvor mye minne som _should_ være gratis, i henhold til systemet. Bare ta en stor del av det, effektivt fordele det, og filhurtigbufferen får klarert. Dette skjer alt veldig raskt, så fordele en stor blokk med minne er ikke et reelt problem. I prosessen med å comitting minne kan du bekrefte størrelsen på tilgjengelig minne, men som ikke er i dette eksempelet kode:

prosedyre TForm1.tmrShrinkCacheTimer (Sender: TObject);
Var s: String;
i: Integer;
m: MemoryStatus;
begynne
GlobalMemoryStatus (m);
setlength (S, m.dwAvailPhys - m.dwTotalPhys div 8-32 millioner);
hvis s <> '' og så på
begynne
for i: = 0 til lengde (r) div 4096 gjøre
s [1 + i * 4096]: =; '.'
ende;
ende;

Det var mye snakk om en liten del av koden :)
vi bare nødt til å sette en byte av hver minne side 4-Kb å begå hele siden.