MSVCRT: Использование памяти уходит диким, но не под отладчиком
-
03-10-2019 - |
Вопрос
У меня есть код C ++, составленный с компилятором Intel, 32bit, в режиме MS VC6, поэтому используя MSVCRT.DLL или MSVCRTD.DLL. Процесс обеспечивает тяжелое распределение памяти и освобождение. Я контролирую использование памяти с WMI и посмотрите на виртуальные и разрабатывающиеся.
С Debug Runtime (msvcrtd.dll): виртуальная константа 1.7 ГБ, рабочая постоянная 1.2 ГБ
С без отладочного времени выполнения (Msvcrt.dll): Виртуальное повышение 1.7-- 2,1 ГБ, работая поднимая 1,2-1,4 ГБ
С без отладочного времени выполнения но под отладчиком (WINDBG): виртуальная постоянная 1.7 ГБ, рабочая постоянная
При 2,1 ГБ виртуальный процесс сбивается (как и ожидалось). Но почему виртуальное использование увеличивается только с (не отладка) msvcrt.dll и только если не под отладчиком? Во всех случаях флаги компиляции идентичны, только разные среды выполнения различны.
Нет правильного решения
Другие советы
Зачастую проблема неинициализирована локальные переменные, которые отнуриваются отладочной RTL, но не при использовании RELEX RTL. Посмотри на «Выжить версию релиза» и посмотри, если это поможет.