これに似ています: Linux/Windowsで「プロセスを休止状態にする」方法は?
プロセスがメモリに留まらないようにプロセスを休止状態にする方法はありますか?例:Firefoxを使用せず、プロセスを閉じたくなく、空きメモリが必要な場合、Firefoxによって予約されているメモリが解放されるように、プロセスを実際に休止状態にするにはどうすればよいですか?
WindowsとLinuxの両方のソリューションが必要です!
Firefoxを使用せず、そのプロセスを閉じたくなく、空きメモリが必要な場合、Firefoxによって予約されているメモリが解放されるように、プロセスを実際に休止状態にするにはどうすればよいですか?
Windowsの場合、 Free Process Freezer があります。
LinuxおよびMacOS Xの場合、 yeedlの回答 で説明されているように、 CrypoPID があります。
カスタムソリューションを考え出したい場合:
たとえば、Windowsでprocess dumping
を調べます。 ProcDump 、 WinDBG からCLIデバッガーで再開します。
Linuxではcore dumping
を調べてください。 core 、 GNU GDB のようなCLIデバッガーで再開します。
デバッガを含まないソフトウェアベースのソリューションは可能だと思いますが、それは Stack Overflow の場合です。
あなたは非常に具体的なユースケースを探しています、なぜそれを一時停止して交換させないのですか?
プロセスの実行と一時停止により多くの時間を費やすことになります...
よりシームレスな別の方法でワークフローを最適化できると思います。
WindowsとLinux/Unixはどちらも、実行可能なプロセスのリストからプロセスを削除することにより、プロセスの実行を一時停止または停止する方法を提供します。
これは、プロセスが所有するメモリページに直接影響することはありませんが、システムがメモリのプレッシャーにさらされるにつれて、これらのページはディスクにスワップアウトするのに適した候補になります。
後で再開するためにプロセスをディスクに書き出そうとしても、重要なことは何も機能しません。ネットワークとウィンドウシステムへのオープンハンドルは、プロセスが再開するとすぐに失敗します。
Windowsの場合:
プロセスを強制終了せずにメモリから完全に削除する方法はわかりませんが、メインウィンドウを最小化することでワーキングセットをトリミングできます。 Microsoftには、これを説明する記事があります。 アプリケーションのワーキングセットは、トップレベルウィンドウが最小化されるとトリミングされます 。
したがって、最初にメインウィンドウを最小化し、次に リンクした質問 で提案されているようにプロセスを一時停止します。
いつも便利な Process Explorer で両方を達成できます。
Windowsでは、一部のプログラムは「未使用」のプログラムメモリをスワップアウトできます。
それを実行できる製品の例は、コマーシャル Process Lasso です。
しかし、Process Lassoでさえ、その慣行に反対するよう助言しています。
仮想メモリの管理はWindowsに任せて、自分の手に渡さないことが最善です。これらのプログラムからの利益は、幻想であり一時的なものです。クリーンアップ後に実行するプログラムの読み込みが速くなったように見えても、遅かれ早かれページングメモリのペナルティが発生します。
Firefoxに関しては、mozillaZineの メモリ使用量の削減-Firefox を参照してください。これには、どの拡張機能がメモリをリークしているかを発見する方法に関する多くのアドバイスが含まれています。
Firefox拡張機能もあります Memory Fox which:
ブラウザのRAMメモリ使用量を減らして使用可能なメモリの増加を促進しようとしていますRAM他のアプリケーションプロセスのメモリRAMメモリ要件。うまくいけば、メモリの回復と保持の試みを促進します。
私の経験では、この拡張機能はFirefoxの避けられないメモリの膨張を延期するだけです。唯一の本当の解決策は、Firefoxを時々閉じてメモリを解放することです。
LinuxのプロセスにSTOP信号を送信できます。停止したプロセスは一時停止のようなものです。再開するには、プロセスCONT信号を送信します。信号を送信するには、次のようにします。
kill -STOP process_id
kill -CONT process_id
システムがより多くのメモリを必要とする場合、停止したプロセスはスワップアウトされます。