3

特定のphtreadスレッドによって使用されているメモリの量を知ることは可能ですか? VmRSS のような情報に興味があります。

4

3 に答える 3

5

各スレッドは、固定サイズでスレッドの開始時に作成されるスタックを消費します。通常は512K/ 1Mですが、起動時の仮想サイズのみです。

ただし、動的に割り当てられたデータ(malloc)の場合、これはプロセス全体の情報であり、スレッドごとではありません。一部の代替malloc実装(tcmallocなど)は、より高度な統計を提供できることに注意してください。

于 2009-04-22T13:51:23.790 に答える
0

pthreadライブラリを使用した私自身の経験から、スレッドがデフォルトの属性で作成されている場合、そのスタックサイズは10MBです。プラットフォーム固有の場合があります。

スタックサイズを減らすことに興味がある場合は、pthread_attr_setstacksize()を使用できます。スタックサイズの適切な値を見積もるために、「checkstack.pl」というスクリプトを使用できます。Linuxカーネルソース(「scripts」ディレクトリの下)で出荷されます。

http://www.kegel.com/stackcheckも参照してください

于 2009-04-22T15:32:30.957 に答える
0

さらに、OS 自体が別のスレッドでメモリを解放して、free() 関数の呼び出しを高速化し、正しい統計の収集をさらに複雑にする場合があります。

于 2009-04-22T15:13:50.270 に答える