hvordan å rydde opp windows filhurtigbufferen
For å være ærlig, har jeg ikke funnet en fin løsning for det, er at: en (kombinasjon av) Windows API som tvinger systemet til å tømme bufferen .
Men å tømme bufferen er ganske enkelt. Alt vi trenger å gjøre er å finne ut hvor mange minnet er tildelt, og hvor mange minne bør være gratis. Disk cache regnes ikke som allokert minne. Så snart en (stor) blokk av minnet er tildelt, vil vinduer (2000) gjør plass ved å fjerne bufrede eks. Dette viser hvor integrert minnehåndtering og fil caching system er.
Dessverre er det ikke en enkel måte å lese størrelsen på systemet cache. Dette må gjøres ved å lese vinduer ytelse tellere, og er ganske mye arbeid det virker, så jeg klarte 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 svært raskt, slik at tildeling av en stor blokk med minne er ikke et reelt problem. I prosessen med comitting minne kan du bekrefte størrelsen på tilgjengelig minne, men det er ikke 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 < > '' da begynne for i: = 0 til lengde (s) div 4096 har s [1 + i * 4096]: = '';. ende; end;
Det var mye snakk om en liten kode :) vi bare nødt til å sette en byte av hver minne side 4-Kb å forplikte hele siden
.