Тема: Очистка оперативної пам'яті.
В гуглі писав як очистити озп з допомогою delphi, нічого не знайшов.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Очистка оперативної пам'яті.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
В гуглі писав як очистити озп з допомогою delphi, нічого не знайшов.
В якому сенсі очистити? Що саме треба зробити?
наприклад в програмі "Advanced SystemCare 8" можна очистити озп. https://сайт-злодій/shabaranskijtaras? … s177224567
Djalin
А яка різниця, звідки викликати системні функції?
shabaranskij
Мені той скрін майже ні про що не говорить. Можу припустити, що та прога банально юзає SetProcessWorkingSetSize для усіх процесів в системі. Принаймні інших механізмів примусити win32-прогу звільнити трохи пам'яті, я не знаю. Користь від таких дій дуже сумнівна, тим не менше в делфі це робиться приблизно так: http://www.cyberforum.ru/delphi-beginne … 37673.html
Кеп мені каже, прога тупо переганяє вміст оперативки в своп.
Власне ви праві, якщо юзати системні виклики, але маю підозру, що хотіли обійтись без них.
Без системних викликів у даному випадку ніяк не обійтися, бо йдеться про роботу ядра та інших процесів.
Я знайшов спосіб.
procedure clear;
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;
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися