Techioz Blog

Ruby でのメモリ使用量の監視

概要

基本的に、私は Windows 10 で選択したアプリケーションのメモリ使用量を好きなだけ監視する個人プロジェクトを行っています。詳細は必要ありません。

私が試したのは、sys/proctable モジュールを使用してすべてのプロセスにアクセスすることでした メインコード:

process_name = "chrome.exe" #for example
target = processes.find { |process| process.cmdline&.include?(process_name) }
ram_bytes = target.working_set_size

しかし、基本的に目に見える問題は、 .working_set_size がプロセスが動作するために最小限のメモリ使用量を返すことです — 「ワーキング セット サイズ (WSS) は、アプリケーションが動作し続けるために必要なメモリ量です」] —(https:// www.brendangregg.com/wss.html#:~:text=The%20Working%20Set%20Size%20(WSS,memory%20that%20is%20frequently%20used.) – そして、その関数は、たとえば、Chrome が 400 MB の RAM を使用しているときにコードが実行されると、プログラムは約 100 ~ 120 を返す可能性があります。

最後に、私が欲しいのは、プログラムの実行時に実行中のアプリケーションのメモリ使用量にアクセスできるモジュールと関数です。何度も言いますが、私のOSはWindows10です。

解決策

リンクしたページを読み続けてください。ワーキング セットのサイズは、あなたが思っているものと異なります。あなたはそのページを十分に読んでいませんでした。

必要な数値は RSS または常駐セットのサイズだと思います。