Réduisez le temps de démarrage de l'application .NET Windows Form exécutée à partir d'un lecteur en réseau

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

  •  01-07-2019
  •  | 
  •  

Question

J'ai une simple application .NET 2.0 Windows Form qui s'exécute sur un lecteur réseau (par exemple, \ MyServer \ MyShare \ app.exe). C'est très basique et ne charge que le minimum de librairies .NET. Cependant, le chargement prend toujours environ 6 à 10 secondes. Les gens pensent que quelque chose ne va pas, cette application si petite prend tellement de temps à se charger.

Avez-vous des suggestions pour améliorer la vitesse de démarrage?

Était-ce utile?

La solution

Essayez Sysinternals Process Explorer . Il contient une colonne de "% de temps dans JIT". Si ce nombre est important, vous pouvez exécuter ngen . sur votre application. Si ce n'est pas le cas, la connexion réseau sera probablement lente. CodeGuru propose un tutoriel sur utilisation de ngen .

Autres conseils

Pour accélérer le temps de chargement, vous pouvez compiler une petite application de démarrage et laisser cette application charger les assemblys en cours d'exécution à partir d'une bibliothèque située en dehors du dossier bin.

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

Déterminer le temps JIT pour évaluer la faisabilité de NGEN est certainement un bon point de départ. Je suis également d'accord avec ceux qui cherchent à modifier le temps de chargement en utilisant un autre point d'entrée pour charger les assemblys. Ce sont souvent l'apparence de la vitesse par rapport à la vitesse réelle qui améliore l'expérience de l'utilisateur.

Configuration Cliquez sur l'application pour qu'elle soit déployée sur la machine locale.

Vous pouvez tricher comme Microsoft Office (et Adobe, je pense) et ajouter une application dans le groupe de démarrage qui indique à l'application de se charger puis de se décharger immédiatement. De cette façon, les DLL sont pré-mis en cache dans la mémoire lorsque l'utilisateur essaie de démarrer l'application. Seul problème: je ne suis pas tout à fait sûr que cela fonctionne de la sorte avec les fichiers en réseau - et si ce n’est pas le cas, cela pourrait être la cause du lent démarrage (c’est-à-dire que vous faites toujours un démarrage à froid par rapport à un démarrage à chaud possible si vous utilisez la machine locale).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top