В любой данный момент времени, как я могу получить объем памяти, используемый каждым потоком?
Если вам нужен только профилировщик кучи , рассмотрите инструменты производительности Google со своим собственным распределителем TCMalloc.
http://code.google.com/p/google-perftools/
Альтернативным высокопроизводительным распределителем является jemalloc, который предоставляет статистические отчеты, включая сведения о кэш-памяти каждого потока, с malloc_stats_print()
malloc_stats_print()
http://www.canonware.com/jemalloc/index.html
Нельзя, куча распределяется между всеми потоками в процессе.
Чтобы проверить размер стека потока, вы можете использовать непереносимое расширение GNU pthread_getattr_np а также вы можете проверить / proc / self / maps (или / proc / PID / maps), но этот способ более сложный.