📄 brainwashpro.pas
字号:
unit BrainWashPro;
{$D-}
interface
uses
Classes, windows;
type
TMemCleaner = class(TThread)
public
procedure Execute; override;
end;
procedure StartMemoryCleaner;
procedure StopMemoryCleaner;
var
cleaner: TMemCleaner;
implementation
{$IFDEF LINUX}
uses BigBrainPro;
{$ELSE}
uses BigBrainPro;
{$ENDIF}
{ TMemCleaner }
procedure TMemCleaner.Execute;
var
t: integer;
u: integer;
v: integer;
w: integer;
x: integer;
man: TBlockManager;
iTotal: integer;
iFreed: integer;
mancount: integer;
begin
iFreed := 0;
iTotal := 0;
u := 0;
v := 0;
w:= 0;
x := 0;
mancount := 0;
while not terminated do begin
inc(u);
inc(v);
inc(w);
inc(x);
if (u mod 30) = 0 then
mancount := manman.ManagerCount;
if mancount > 50 then
mancount := 50;
if (u >= (90-mancount)) then begin
if ManMan.TryLock then
try
ManMan.Clean;
u:=0;
finally
ManMan.Unlock;
end;
end;
if w = 200 then begin
w := 0;
iTotal := ManMan.TotalBytes;
end;
if v = 1 then begin
v:=0;
if MainMan.Freebytes > (iTotal shr 2) then begin
MainMan.Clean;
end;
end;
if ManMan.TryLock then
try
iFreed := 0;
for t := 1 to ManMan.Managercount-1 do begin
man := ManMan.Managers[t];
if Man.TryLock then
try
Man.Clean;
inc(iFreed);
finally
Man.Unlock;
sleep(1);
end;
end
finally
ManMan.Unlock;
end;
if x=100 then begin
x := 0;
if ManMan.TryLock then
try
for t := 1 to ManMan.Managercount-1 do begin
man := ManMan.Managers[t];
if Man.TryLock then
try
//Man.CleanPages;
finally
Man.Unlock;
sleep(1);
end;
end
finally
ManMan.Unlock;
end;
end;
if random(iFreed) > 4 then
sleep(1)
else
if random(10) > 7 then
sleep(1);
end;
end;
procedure StartMemoryCleaner;
begin
cleaner := TMemCleaner.create(false);
end;
procedure StopMemoryCleaner;
begin
cleaner.terminate;
end;
initialization
{$IFNDEF NOCLEAN}
StartMemoryCleaner;
{$ENDIF}
finalization
//cleaner.Suspend;
{$IFNDEF NOCLEAN}
StopMemoryCleaner;
{$ENDIF}
// while not cleaner.Terminated do
// sleep(100);
//cleaner.free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -