早上好。我们正在尝试将Google的tcmalloc自定义多线程内存分配器与单线程Windows Test profram一起使用。当我们分析测试程序时,我们观察到在_threadhandle和tcmalloc多线程函数(例如perftools_pthread_getspecific)上花费了大量的CPU周期。以下是个人资料的示例:
KiFastSystemCallRet cIntersectingGroupCache ::过程 cIntersectingGroupCache :: BruteForceDeduping cIntersectingGroupCache :: FindIntersection cDedupe :: AccurateNearCompare HashMapanonymous namespace':: do_free_with_callback 的std :: basic_string的<炭 tcmalloc :: ThreadCache ::取消分配 memcmp 的HashMap<性病:: basic_string的<炭 匿名命名空间':: do_malloc std :: _ Treeanonymous namespace':: LibcInfoWithPatchFunctions< 0> :: Perftools_delete 匿名命名空间':: cpp_alloc perftools_pthread_getspecific ???????? tcmalloc :: ThreadCache :: ::的FreeList推 的std :: _树
我们是否可以使用额外的预处理器directivesor编译器优化来重建新版本的libtcmalloc.dll,这些优化不会运行_threadhandle和perftools_pthread_getspecific等线程函数?我们正在使用NO_THREADS预处理器定义来构建libtcmalloc.dll,但我们仍然遇到两个先前命名的tcmalloc线程相关函数?谢谢。