Вход в систему
Логин
Пароль
 

Sprint #26: Terrain.Сейчас на сайте 0 посетителей
WoWCore
История 2.0
История 1.0
SandBox

Ресурсы
Форум
Файлы

Документация
Литература
Ссылки


Минимизация занимаемой памяти
← назад к списку

30.09.2009, 01:14

Маленький трюк, который пригодится Вам для создания приложений, работающих в фоновом режиме. Таких, как планировщик задач, служб, серверов и т.п. То есть приложений, которые постоянно сидят себе тихонько в памяти, и чего-то там в фоне делают, не мешая пользователю заниматься своими делами.
Для таких приложений важным фактором является размер потребляемой памяти.
Фоновые приложения должны кушать минимум оперативной памяти и не нагружать процессор.
В принципе, данный приём можно применять в любых приложениях. Просто для активных интерфейсных приложений в этом нет смысла.
Но меньше слов, больше кода:

uses 

Windows, SysUtils;
procedure 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;
После вызова этой процедуры, приложение отпустит всю ненужную ему память.
Можете попробовать создать пустую форму с кнопкой и посмотреть, как изменится объём занимаемой памяти.
P.S. Сработает только на WinNT системах.

http://www.delphilab.ru/content/view/215/63/


Нет комментариев.




Copyright © 2005-2024 WoWCore Team