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 回答