1

タイトルにあるように、-ltcmalloc でコンパイルされたプログラムのスレッドごとのメモリ使用量を確認できるかどうかに興味があります。通常のmallocメモリを使用したAFAIKは、スレッドではなくプロセスにリンクされていますが、tcmallocについてはわかりません。

4

2 に答える 2

3

TcMallocには、スレッドごとのメモリキャッシュがいくつかあります。ただし、これらは共有ヒープのプロキシにすぎません(輻輳を減らすため)。tcmallocのすべてのメモリは、単一の共有プールから取得されます。

生きている(割り当てられた)メモリは、あるスレッドから別のスレッドに自由に渡される可能性があるため、どのスレッドがそれを使用しているかを簡単に判断することはできません。

どのスレッドが使用済みメモリを割り当てたかを監視できますが、完全に分離されたメモリプール(あまり弾力性がない)または割り当てごとのメモリオーバーヘッドが必要になります。それらのどちらもtcmallocには存在しません...

于 2012-02-11T17:24:27.387 に答える
1

スレッドごとのメモリ使用量などはありません。メモリはプロセスリソースです。

于 2011-10-02T18:23:16.633 に答える