Pregunta

contexto: Estamos construyendo un marco para la entrega rápida de aplicaciones WPF. Este marco usa Autofac como un contenedor IoC y también usa regiones de Prism v1. Estamos programando tareas con extensiones paralelas de Microsoft.

Estamos enfrentando el siguiente problema: Cuando iniciamos la aplicación con vistas vacías (por lo tanto, solo un shell con regiones y controles de marcador de posición), la memoria permanecerá estable durante unos 60 segundos y luego aumentará cada segundo con 4kb, luego 4kb, después de eso 8kb. Entonces, cada 3 segundos tenemos 16Kb agregados a nuestra presión de memoria.

¿Qué hemos tratado de rastrear la fuga. Comencé usando dotTrace pero no pude ver ninguna diferencia entre 2 instantáneas tomadas con 30 minutos de diferencia. Pasé al perfil de memoria .NET porque me da más información, pero nuevamente no podemos ver ninguna diferencia entre 2 instantáneas. Podemos ver que se crean varios objetos, pero también se eliminan y dan como resultado un delta de 0. Así que pasé a windbg pero el resultado es el mismo.

Otra cosa extraña es que cuando iniciamos sysinternals dbgvw no vemos que se realicen llamadas en nuestras aplicaciones.

¿Tiene alguna sugerencia de lo que podríamos intentar a continuación para averiguar cuál / quién es el culpable?

¿Fue útil?

Solución 2

Resulta que se trataba de un error dentro de WPF y la solución fue crear un controlador de ventanas como primer objeto o algo. Gracias chicos

Otros consejos

Si busca fugas no gestionadas y utiliza Visual Studio, puede obtener información sorprendentemente útil utilizando las funciones incorporadas de crt:

vea una respuesta a una pregunta relacionada

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