_CrtIsValidHeapPointer在Windows 10 1809上消耗了太多的CPU,为什么?

时间:2019-04-28 07:32:11

标签: performance visual-c++

我在DLL的调试版本中遇到了有关_CrtIsValidHeapPointer的问题,该问题使用msvc2017编译器进行了编译。当调试版本(带有vc runtime的调试版本)被加载并运行时,性能非常糟糕。我确认大部分的cpu是通过调用_CrtIsValidHeapPointer消耗的,该调用是从运算符delete或free(C函数)调用的。因为在堆上分配和释放对象非常普遍,所以经常调用_CrtIsValidHeapPointer,这导致交互非常缓慢,并且某些情况可能导致程序无响应。

我尝试了许多不同的方法,这是我发现的:

  • 与VC CRT的静态lib版本或dll版本链接没有区别。
  • 使用WinSDK 8.1或10.0没有区别
  • 在Win10 1803下运行dll时,它可以正常工作。在Win10 1809下,缓慢且反应迟钝。

现在我不知道为什么Win10版本会导致不同的行为以及如何发生。 任何帮助将不胜感激。

0 个答案:

没有答案