MSVCRT: Использование памяти уходит диким, но не под отладчиком

StackOverflow https://stackoverflow.com/questions/2779890

Вопрос

У меня есть код 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. Посмотри на «Выжить версию релиза» и посмотри, если это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top