Reduzca el tiempo de inicio de la aplicación .NET Windows Form que se ejecuta desde una unidad en red

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

  •  01-07-2019
  •  | 
  •  

Pregunta

Tengo una aplicación de formulario de Windows .NET 2.0 simple que se ejecuta desde una unidad de red (p. ej.\MiServidor\MiCompartir\app.exe).Es muy básico y sólo carga las bibliotecas .NET mínimas.Sin embargo, todavía tarda entre 6 y 10 segundos en cargarse.La gente piensa que algo debe estar mal para que una aplicación tan pequeña tarde tanto en cargarse.

¿Hay alguna sugerencia para mejorar la velocidad de inicio?

¿Fue útil?

Solución

Probar Explorador de procesos de Sysinternals.Tiene una columna de "% de tiempo en JIT".Si ese número es grande, podrías ejecutar ngen en su solicitud.Si no es así, es probable que la conexión de red sea lenta.CodeGuru tiene un tutorial sobre uso de ngen.

Otros consejos

Para acelerar el tiempo de carga, puede compilar una pequeña aplicación de inicio y dejar que esa aplicación cargue los ensamblados en tiempo de ejecución desde una biblioteca fuera de la carpeta bin.

http://support.microsoft.com/kb/837908

Determinar el tiempo JIT para sopesar la viabilidad de NGEN es sin duda un buen punto de partida.También estoy de acuerdo con aquellos que buscan alterar el tiempo de carga usando otro punto de entrada para luego cargar los ensamblajes.A menudo es el apariencia de velocidad versus velocidad real que mejora la experiencia del usuario.

Configure Haga clic una vez para que la aplicación se implemente en la máquina local.

Podrías hacer trampa como Microsoft Office (y creo que Adobe) y agregar una aplicación en el grupo Inicio que le indique a la aplicación que se cargue y luego se descargue inmediatamente.De esa manera, las DLL se almacenan previamente en la memoria caché para cuando el usuario intenta iniciar la aplicación.Sólo captura:No estoy completamente seguro de si funciona de esta manera con archivos en red, y si no es así, esta podría ser la causa del inicio lento (es decir, siempre estás haciendo un inicio en frío frente a un posible inicio en caliente si ejecutas desde la máquina local).

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