私たちの会社はプロセスを開発し、私は新しい方法を追加する必要があり、これは少しメモリオーバーヘッドを意味しました。測定する必要があります。だから私はsvmon
それを私のプロセスに適用しました。生のメモリ消費プロファイルは次のとおりです。
$ svmon -P my_pid -O summary=basic,unit=KB
Pid Command Inuse Pin Pgsp Virtual
4391290 ????? 596384 41900 0 577708
その後、リクエストを実行して「新しい方法」がトリガーされ、出力が次のように変更されました。
$ svmon -P my_pid -O summary=basic,unit=KB
Pid Command Inuse Pin Pgsp Virtual
4391290 ????? 596480 41900 0 577796
...「メソッド」がハッシュテーブル内の一部の要素を移動し、新しい要素に挿入してからハッシュテーブルデッキの末尾にプッシュするため、意味がありません。キューに格納される各ハッシュ値は100個以下の要素を保持し、各要素はデフォルトでポインタです。したがって、メソッドの実行により、ほぼ100KiBが追加されることはありません。
Inuse
また、RAMよりRAMが多いと混乱しますvirtual
。
メモリ消費の不一致の理由は何ですか?
私の最初の推測は、オペレーティングシステムがプロセスに新しいメモリページを割り当てたか、事前に割り当てたことです。ただし、その場合は、同じメソッドが呼び出されるたびにさらにページを追加する必要はありません。