Недавно я уже публиковал метод очистки оперативной памяти занятой под Twebbrowser, но в использовании этого так же оказалось мало, так как проекты по прежнему кушали оперативку, в пределах 100-150 мегабайт.
В принципе, это не так уж и много для настоящего времени, но все же хотелось совершенства. Хотелось устранить все неровности, и подобные недоработке в своем софте, в следствии чего я опять же долгое время (ну не так уж и долго icon smile Полная очистка оперативной памяти занятой программой в Delphi ) обрабатывал google по данному поводу, но не замечал данного метода.
Опять же решение помог найти, так сказать, мой сотрудник, по той простой что он первым нашел решение нашей общей проблемы, и проверил его, а я думая что «это полная чушь» закрыл страничку многим известного сайта. Как оказалось решение было на столько простым, что проще уже некуда, всё прекрасно работает.
В использовании процедура очень проста. Для её внедрения потребуется лишь вставить процедуру в свой код, а затем выполнить когда это действительно требуется.
Код процедуры:
procedure Tform1.TrimWorkingSet;
var
MainHandle: THandle;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID);
SetProcessWorkingSetSize(MainHandle, DWORD(-1), DWORD(-1));
CloseHandle(MainHandle);
end;
end;