KDOC 137: 簡単にプロセスの使用メモリを確認する

この文書のステータス

  • 作成
    • 2024-04-20 貴島
  • レビュー
    • 2024-04-27 貴島

概要

ゲームを作る過程で、特定の画面を開くと激しくメモリ消費量が上がる問題にあたった。いままでメモリリークが問題となるような課題に取り組んでこなかったので、手間取った。

まず状況を正しく把握するために、コマンドで定期実行してメモリを観察する。

  watch -n 1 'ps aux | head -n 1 && ps aux | grep ruins'

Every 1.0s: ps aux | head -n 1 && ps aux | grep ruins

USER         PID %CPU %MEM    VSZ   RSS   TTY    STAT START   TIME COMMAND
orange   2421837 25.8  0.6 4584268 218656 pts/10 Sl+  22:35   2:21 ruins
orange   2481913  0.0  0.0  10148  1016 pts/8    S+   23:03   0:00 grep ruins
...
VSZ
Virtual Memory Size(仮想メモリ)。プロセスがアクセスできるメモリ領域サイズの総和。プロセスは未使用の可能性がある
RSS
Resident Set Size(物理メモリ)。プロセスが確保している物理メモリの使用量。mallocしても書き込みを行っていなければまだ確保されてない

とはいえ、これだけでは何もわからない。プロセスを確認できたら別の方法(プログラミング言語ごとに用意されたプロファイラなど)で詳しく調べていく。

参考

関連