Pregunta

Tengo un código C ++ compilado con el compilador de Intel, de 32 bits, en modo MS VC6, así que usar ya sea msvcrt.dll o msvcrtd.dll. El proceso de asignación de memoria hace pesado y cancelación de asignación. Me supervisar el uso de memoria con WMI y vistazo a VirtualSize y WorkingSetSize.

con el tiempo de ejecución de depuración (msvcrtd.dll): 1,7 GB constante virtual, trabajo constante de 1,2 GB
con el tiempo de ejecución no depuración (msvcrt.dll): recaudación virtuales 1.7-- 2,1 GB , trabajando elevar 1.2-1.4GB
con el tiempo de ejecución no depuración pero bajo depurador (windbg): 1,7 GB constante virtual, constante de trabajo

A 2,1 GB virtual el proceso está fallando (como se esperaba). Pero ¿por qué el aumento de uso virtual sólo con (no depuración) msvcrt.dll y sólo si no bajo depurador? En todos los casos las banderas de compilación son idénticos, sólo bibliotecas de tiempo de ejecución es diferente.

No hay solución correcta

Otros consejos

variables locales menudo, el problema no está inicializado que se anuló por la RTL de depuración, pero no cuando se utiliza el RTL liberación. Echar un vistazo a "Sobrevivir a la versión de lanzamiento" y ver si esto ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top