Defrag Memori

Kadangkala jikalau kita menjalankan aplikasi yang terlalu banyak dalam waktu yang bersamaan maka komputer akan menjadi lambat. Setelah aplikasi kita tutup, kok masih tetap lambat. Apa sebabnya? aplikasi yang sudah ditutup tadi belum sepenuhnya hilang dari memori. Nah inilah gunanya aplikasi Defrag memori.

Berikut function defrag memory dengan kode Delphi

Deklarasi

uses Windows;
type proc = procedure;
var bussy : boolean;
//limit dalam satuan megabyte
procedure defragmem(limit : integer; x: proc);


procedure defragmem(limit : integer; x: proc);
var tab : array [0..1024] of pointer;
i : integer;
p : pointer;
lim : integer;
begin
if bussy then exit;
bussy:=true;
lim:=limit;
if lim>1024 then lim:=1024;
for i:=0 to lim do tab [i]:=nil;
for i:=0 to lim-1 do
begin
p:=VirtualAlloc(nil, 1024*1024, MEM_COMMIT,
PAGE_READWRITE + PAGE_NOCACHE);
tab[i]:=p;
asm
pushad
pushfd
mov edi, p
mov ecx, 1024*1024/4
xor eax, eax
cld
repz stosd
popfd
popad
end;
if assigned(x) then x;
end;
for i:=0 to lim-1 do
begin
VirtualFree(Tab[i], 0, MEM_RELEASE);
if assigned(x) then x;
end;
bussy:=false;
end;

Cara pemanggilannya

Defragmem(memlevel.position,idle);


memlevel merupakan trackbar dimana nilai maksimalnya diset dengan kapasitas memory dalam komputer

1 komentar:

selamat belanja.com mengatakan...

sepertinya ada yang kurang nih.
memlevel = un identifier

Baca Juga