Bagaimana cara membebaskan memori "sepenuhnya hibernasi" proses?


10

Mirip dengan ini: Bagaimana cara "hibernasi proses" di Linux / Windows?

Apakah ada metode untuk hibernasi suatu proses dengan cara itu tidak tinggal di memori? Misalnya: Jika saya tidak ingin menggunakan Firefox, dan tidak ingin menutup prosesnya, dan saya perlu memori bebas, lalu bagaimana saya bisa benar-benar hibernasi proses sehingga memori yang disediakan oleh Firefox dibebaskan?

Saya butuh solusi untuk Windows dan Linux!

Jawaban:


4

Jika saya tidak ingin menggunakan Firefox, dan tidak ingin menutup prosesnya, dan saya perlu memori bebas, lalu bagaimana saya bisa benar-benar hibernasi proses sehingga memori yang disediakan oleh Firefox dibebaskan?

Untuk Windows, ada Free Process Freezer .

Untuk Linux dan Mac OS X, ada CrypoPID , sebagaimana disebutkan dalam jawaban yeedl ini .


Jika Anda ingin membuat solusi khusus:

Lihatlah ke process dumpingWindows, misalnya. ProcDump , lanjutkan dengan debugger CLI dari WinDBG .

Lihatlah ke core dumpingLinux, misalnya. intinya , lanjutkan dengan debugger CLI seperti GNU GDB .

Saya yakin solusi berbasis perangkat lunak yang tidak melibatkan debugger dimungkinkan, tetapi itu untuk Stack Overflow .


Anda sedang mencari kasus penggunaan yang sangat spesifik, mengapa tidak hanya menunda dan membiarkannya diganti?

Anda akan menghabiskan lebih banyak waktu untuk menjalankan proses dan menangguhkan ...

Saya percaya Anda dapat mengoptimalkan alur kerja Anda dengan cara lain yang akan lebih mulus.


5

Baik Windows dan Linux / Unix menyediakan cara untuk menunda atau menghentikan proses dari eksekusi, dengan menghapusnya dari daftar proses yang dapat dijalankan.

Ini tidak secara langsung mempengaruhi halaman memori yang dimiliki oleh suatu proses, tetapi seiring berjalannya waktu ketika sistem mendapat tekanan untuk memori, halaman tersebut akan menjadi kandidat yang baik untuk ditukar keluar ke disk.

Mencoba menulis proses ke disk untuk dimulainya kembali nanti tidak akan bekerja untuk apa pun yang non-sepele. Pegangan terbuka ke jaringan dan sistem windowing akan gagal segera setelah proses dilanjutkan.


Itu juga tidak akan berhasil untuk hal-hal sepele. :) +1
user541686

1
Pegangan terbuka itu baru saja dibuka lagi atau disimpan di sepanjang, sehingga itu tidak benar-benar masalah ...
Tamara Wijsman

2

Saya tahu di firefox Anda dapat menyimpan satu sesi.

Di Linux, ini bisa dilakukan dengan CrypoPID .

Ini pertanyaan dan ini salah satu mencoba untuk menjawabnya untuk Windows, tapi aku tidak bisa menemukan solusi besar untuk menyelamatkan negara aplikasi untuk file seperti yang kulakukan untuk linux.


1

Untuk Windows:

Saya tidak tahu cara apa pun untuk benar-benar mengusir proses dari memori tanpa membunuhnya, tetapi Anda dapat memotong set kerjanya dengan meminimalkan jendela utamanya. Microsoft memiliki artikel yang menjelaskan hal ini: Perangkat kerja aplikasi dipangkas ketika jendela tingkat atas diminimalkan .

Jadi, pertama-tama perkecil jendela utama, kemudian tunda proses seperti yang disarankan dalam pertanyaan yang Anda tautkan .

Anda dapat mencapai keduanya dengan Process Explorer yang selalu berguna .

  • Proses klik kanan, Window -> Minimalkan
  • Klik kanan lagi, Tangguhkan.

1

Pada Windows, beberapa program dapat menukar memori program "yang tidak digunakan".
Contoh produk yang dapat melakukan itu adalah Proses Lasso komersial .
Namun, bahkan Proses Lasso menasihati praktik itu.

Dari The Truth tentang Windows Memory Optimizers :

Cara terbaik adalah meninggalkan pengelolaan memori virtual ke Windows dan tidak membawanya ke tangan Anda sendiri. Setiap manfaat dari program ini adalah ilusi dan sementara. Anda dikenakan penalti memori paging kembali cepat atau lambat, bahkan jika tampaknya program yang Anda jalankan setelah pembersihan memuat lebih cepat.

Sekarang mengenai Firefox, lihat Mengurangi penggunaan memori mozillaZine - Firefox , yang berisi banyak saran tentang cara menemukan ekstensi mana yang membocorkan memori.

Ada juga ekstensi Firefox Memory Fox yang:

Mencoba mengurangi RAM peramban Penggunaan memori mempromosikan peningkatan memori RAM yang tersedia untuk aplikasi lain memproses persyaratan memori RAM. Semoga memupuk segala upaya Pemulihan dan Retensi Memori.

Dalam pengalaman saya, ekstensi ini hanya menunda memori yang tidak terhindarkan dari Firefox. Satu-satunya solusi nyata adalah menutup Firefox dari waktu ke waktu untuk membebaskan memori.


1

Anda dapat mengirim sinyal STOP ke proses di Linux. Proses yang terhenti seperti dijeda . Untuk melanjutkannya, kirim sinyal proses CONT. Untuk mengirim sinyal Anda dapat melakukan ini:

kill -STOP process_id

kill -CONT process_id

Proses yang terhenti akan ditukar jika sistem membutuhkan lebih banyak memori.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.