Pregunta

¿Cuál es la mejor manera de localizar una pérdida de memoria que solo se encuentra en la caja de prueba / liberación de un cliente, y en ningún otro lugar?

¿Fue útil?

Solución

dotTrace3.1

(Esta pregunta es un poco divertida, porque estoy rastreando una fuga de memoria que no está presente en mi máquina ...)

Otros consejos

Pruebe un generador de perfiles de memoria como ANTS Profiler .

Si el usuario tiene el problema constantemente, tome un stackdump y analice de la manera estándar

Es código, datos o configuración.

Como usted dice que el código no es defectuoso el 100% del tiempo, culparía a la configuración. Tome una copia de la configuración (y opcionalmente algunos datos) e intente replicar el problema; no sabrá que lo encontró y lo arregló sin reproducción.

Finalmente, resuélvelo con un generador de perfiles de memoria.

Aquí hay una opción: darles un cuadro donde la fuga no esté presente.

A veces, no es el código.

Editar: Es el código, los datos o la configuración.

O .NET Framework, el sistema operativo, los controladores, IIS o COM (automatizando Excel, por ejemplo), o similares.

Mi suposición es que la pérdida de memoria no es reproducible, excepto en el cuadro del cliente (al que no se puede permitir que el desarrollador acceda para la depuración).

PerfMon puede ser útil ( http://dotnetdebug.net / 2005/06/30 / perfmon-your-debugging-buddy / ). Hay varios contadores que pueden ayudar a reducir qué recurso se está filtrando, y a qué velocidad, etc.

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