[C++]プロセスのメモリ使用量を調べる
結局/procを弄ることにする。
- fork()して子プロセス側はexec()してターゲットを実行する
- 親プロセスは子プロセスのpidを調べ、該当する/proc/(pid)/statmを開く
- 一行読む
- 空白で区切って7個の数値を読む
- getpagesize()した値をかけて表示する
- /proc/(pid)/statmを閉じる
- 数秒sleepした後に3.に戻る
なんとなく正しい値になってそう。
getrusage()のメモリ情報 よりは詳しい情報が得られますね。
面倒くさがらずに/proc/(pid)/statを見ればより詳細な情報が得られそうですね。
いまのところやるつもりはないですが。