от дивіться якщо якась програма у мене гамцяє всю пам'ять то тією програмкою я раз в надцять хвилин можу ту пам'ять звільнити - тобто програма не падає і не вимикається але памяті починає їсти менше - чи можна так під лінуксом - командою чи програмою - не важливо
Та програмка вам не те щоб бреше, але просто говорить не всю правду.
Подивіться на Memory tab в Resource Monitor своєї Він7 - побачите там розподіл памяті по станах. Є Hardware Reserved (gray), In Use (green), Modified (orange), Standby (blue), Free (light blue).
Тепер скажіть що з того вважати вільною памяттю а що ні ?
Я не можу точно сказати.
Але припускаю, що Modified - це сторінки памяті, які можуть бути використані іншими програмами але перед цим повинні бути записані в page file. А Standby - це сторінки памяті які вже не використовуються програмами але ще не звільнені (Free). Ядро віндовс звільняє їх або далі тримає як кеш згідно якогось свого алгоритму.
Така "програмка" може примусово скидувати Modified сторінки в page file, і за рахунок цього збільшується кількість Standby й, відповідно, вільної памяті.
Може й не так, але кількість памяті яка виділена процесу не змінюється. Просто частина її тепер по іншому називається і відповідно зараховується в іншу колонку.
Позитивний ефект від цього - суб'єктивний, оскільки ядро всеодно скинуло б сторінки через де який час, і не всі одразу, а лише скільки необхідно. Програмка просто вирішила скинути сторінки памяті швидше, всі і зараз.
Ну і це так, стосується лише Він7 з його імпрувнутим memory manager.
В він2003/ХР виділення памяті не таке продвинуте.