最近のプロジェクトでは、比較のためにさまざまなアルゴリズムのメモリ要件を測定する必要がありました。ただし、メモリ割り当て自体を制御することはできませんでしたが (アルゴリズムは matlab で記述されていました)、メモリは必要なときにのみ割り当てられ、システムで不要になったときに早期に解放されるように見えました。したがって、メモリ要件を測定するためのアイデアは次のとおりです。
- 実行中の matlab プロセスの PID を取得する
- アルゴリズムの開始前に
/proc/<PID>/status
、エントリを読み取り、解析し、記録します。VmSize
- 各アルゴリズムの内側のループで 2) と同じことを行い、 の差を
VmSize
アルゴリズムのメモリ消費量として記録します。
ここで私の質問は次のとおりです。それはメモリ消費量の信頼できる推定量ですか? または、別のフィールドを使用する必要がありましたか (選択できるフィールドはかなりありますが、期待したものと最も近いことがVm*
わかりました)。VmSize
「バイト単位の正確な」測定値は必要なく、「大まかな」推定値だけが必要であることに注意してください。