_CrtIsValidHeapPointer потребляет слишком много процессора в Windows 10 1809. Почему? - PullRequest
0 голосов
/ 28 апреля 2019

Я столкнулся с ошибочной проблемой _CrtIsValidHeapPointer в отладочной версии библиотеки DLL, которая скомпилирована с использованием компилятора msvc2017.Когда отладочная версия (с отладочной версией vc runtime) загружается и работает, производительность ужасна.Я подтвердил, что большая часть процессора используется при вызове _CrtIsValidHeapPointer, который вызывается из оператора delete или free (функция C).Поскольку довольно часто выделяется и освобождается объект в куче, часто вызывается _CrtIsValidHeapPointer, что приводит к очень медленному взаимодействию, а некоторые вещи могут привести к зависанию программы.

Я перепробовал много разных методов, вот что я нашел:

  • Связывание со статической версией lib или dll-версией VC CRT не имеет значения.
  • Использование WinSDK 8.1 или 10.0 не имеет значения
  • При запуске dll под Win10 1803 все работает нормально.Под Win10 1809, лаги и не отвечает.

Теперь я понятия не имею, почему версия Win10 ведет к другому поведению и как.Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...