Як звільнити пам'ять, «повністю перезимувавши» процес?


10

Схоже на це: Як "сплячий процес" в Linux / Windows?

Чи існують якісь методи, щоб перезимувати процес таким чином, щоб він не залишався в пам'яті? Напр .: Якщо я не хочу використовувати Firefox і не хочу закривати процес, і мені потрібна вільна пам'ять, то як я можу насправді перезимувати процес, щоб звільнилася пам'ять, зарезервована Firefox?

Мені потрібно рішення як для Windows, так і для Linux!

Відповіді:


4

Якщо я не хочу використовувати Firefox і не хочу закривати його процес, і мені потрібна вільна пам'ять, то як я можу насправді перезимувати процес, щоб звільнилася пам'ять, зарезервована Firefox?

Для Windows існує Free Free Freezer .

Для Linux та Mac OS X існує CrypoPID , про що йдеться у відповіді yeedl .


Якщо ви хочете розробити спеціальне рішення:

Погляньте process dumpingна Windows, напр. ProcDump , відновіть його за допомогою відладчика CLI від WinDBG .

Погляньте core dumpingна Linux, наприклад. core , відновіть його налагоджувачем CLI, як GNU GDB .

Можу вважати, що можливе рішення на основі програмного забезпечення, яке не передбачає налагодження, але це для переповнення стека .


Ви шукаєте дуже конкретний випадок використання, чому б просто не зупинити його і не дати йому помінятися?

Ви б витратили більше часу на те, щоб ваші процеси запускалися та призупинялися ...

Я вважаю, ви можете оптимізувати свій робочий процес іншим способом, який би був більш безпроблемним.


5

І Windows, і Linux / Unix надають спосіб призупинити або зупинити виконання процесу, видаливши його зі списку запущених процесів.

Це не впливає безпосередньо на сторінки пам'яті, якими володіє процес, але з часом, коли система потрапляє під тиск для пам'яті, ці сторінки стануть хорошими кандидатами для заміни на диск.

Спроба виписати процес на диск для подальшого відновлення не допоможе нічого нетривіального. Відкриті ручки до мережі та системи вікон не вдасться, як тільки процес відновиться.


Він би не працював ні для чого тривіального. :) +1
користувач541686

1
Ці відкриті ручки просто відкриваються знову або зберігаються разом, так що насправді це не проблема ...
Tamara Wijsman

2

Я знаю, що у Firefox ви можете зберегти сеанс.

В Linux це можна зробити за допомогою CrypoPID .

На це питання і на цю спробу відповісти на це для Windows, але я не зміг знайти чудове рішення збереження стану програми у файл, як я це робив для Linux.


1

Для Windows:

Я не знаю жодного способу повністю вигнати процес із пам'яті, не вбиваючи його, але ви можете обрізати його робочий набір, зводячи до мінімуму його головне вікно. У Microsoft є стаття, яка пояснює це: Робочий набір програми обробляється, коли його вікно верхнього рівня мінімізоване .

Отже, спочатку зведіть до мінімуму головне вікно, а потім призупиніть процес, як було запропоновано у пов'язаному вами питанні .

Ви можете виконати обоє за допомогою корисного провідника процесів .

  • Клацніть правою кнопкою миші процес, Вікно -> Згорнути
  • Клацніть ще раз правою кнопкою миші, Призупинити.

1

У Windows деякі програми можуть замінити "невикористану" пам'ять програми.
Прикладом продукту, який може це зробити, є комерційний Process Lasso .
Однак навіть Process Lasso протистоїть цій практиці.

З правди про оптимізатори пам'яті Windows :

Найкраще залишити управління віртуальною пам’яттю Windows і не брати її у свої руки. Будь-яка користь від цих програм є ілюзією та тимчасовою. Ви рано чи пізно несете штрафи за тимчасове підключення пам'яті, навіть якщо виявляється, що програма, яку ви запускаєте після очищення, завантажується швидше.

Тепер щодо Firefox дивіться розділ зменшення використання пам'яті mozillaZine - Firefox , який містить багато порад щодо того, як дізнатися, які розширення просочують пам'ять.

Є також розширення Firefox Memory Fox, яке:

Спроба зменшити використання оперативної пам’яті браузера, що сприяє збільшенню пам’яті оперативної пам’яті для інших застосунків, що обробляють оперативні пам'яті. Сподіваємось, сприяння будь-яким спробам відновлення та збереження пам'яті.

На мій досвід, це розширення лише відкладає неминучу пам'ять Firefox. Єдине справжнє рішення - час від часу закривати Firefox, щоб звільнити пам'ять.


1

Ви можете відправляти сигнал STOP процесам в Linux. Зупинений процес - це як призупинений . Щоб відновити його, надішліть сигнал CONT процесу. Щоб надіслати сигнал, ви можете зробити це:

kill -STOP process_id

kill -CONT process_id

Зупинений процес буде замінено, якщо системі потрібно більше пам’яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.