performance - _CrtIsValidHeapPointer 在 Windows 10 1809 上消耗过多的 cpu,为什么?
问题描述
我在使用 msvc2017 编译器编译的 dll 的调试版本中遇到了一个关于 _CrtIsValidHeapPointer 的问题。当调试版本(带有调试版本的vc运行时)加载并运行时,性能很糟糕。我确认大部分 cpu 都被调用 _CrtIsValidHeapPointer 所消耗,它是从操作员删除或释放(C 函数)调用的。因为在堆上分配和释放对象很常见,所以经常调用_CrtIsValidHeapPointer,这会导致交互非常滞后,并且某些事情可能会导致程序无响应。
我尝试了许多不同的方法,这是我发现的:
- 与 VC CRT 的静态 lib 版本或 dll 版本链接没有区别。
- 使用 WinSDK 8.1 或 10.0 没有区别
- 在Win10 1803下运行dll时,运行正常。Win10 1809下,卡顿,反应迟钝。
现在我不知道为什么 Win10 版本会导致不同的行为以及如何导致。任何帮助将不胜感激。
解决方案
推荐阅读
- python - 如何使用 Python 进行 API 调用并使用给定的 API 密钥对其进行身份验证?
- python - 与 stan 一样,pymc3 中的直接对数概率增量(目标 += ...)
- php - 通过工匠创建模型时出现 InvalidArgumentException
- javascript - 如何在反应钩子的位置0处修复json中的禁止和意外令牌
- reactjs - 打字稿反应上下文+类型'{}'没有调用签名
- asp.net - ASP.NET 中的 url 重写和 A/B 测试
- react-native - 如何在 react-native 中隐藏顶部导航栏?
- python - 使用python通过win32com访问outlook
- python - 在 Python 中使用 BeautifulSoup 解析 HTML 冻结了我的脚本
- r - 从数据框列表中的特定数据框中的特定位置添加一列