TCMalloc 是一个非常适合多线程使用的堆管理器(在我的例子中是 OpenMP)。使用 tcmalloc 启动并运行 linux、windows、32 位的所有内容非常容易,但现在我完全被 win-64 卡住了:
- 我使用 VS2012 构建的动态链接 x64 libtcmalloc-minimal
- 一切都链接得很好,程序启动得很好,{ new, malloc, realloc, free } 工作得很好
第一次调用 delete 或 delete [] 时,程序崩溃,因为 std 库(在 dbgdel.cpp 中)中的 delete 运算符在以下行中被调用:
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
我尝试使用所有内容的发布版本(因为 dbgdel.cpp 运算符仅在定义 _DEBUG 时使用)但没有运气
任何帮助是极大的赞赏。