我在DLL的调试版本中遇到了有关_CrtIsValidHeapPointer的问题,该问题使用msvc2017编译器进行了编译。当调试版本(带有vc runtime的调试版本)被加载并运行时,性能非常糟糕。我确认大部分的cpu是通过调用_CrtIsValidHeapPointer消耗的,该调用是从运算符delete或free(C函数)调用的。因为在堆上分配和释放对象非常普遍,所以经常调用_CrtIsValidHeapPointer,这导致交互非常缓慢,并且某些情况可能导致程序无响应。
我尝试了许多不同的方法,这是我发现的:
现在我不知道为什么Win10版本会导致不同的行为以及如何发生。 任何帮助将不胜感激。