2010-07-07 2 views
2

Nous avons ce problème, mais nous ne trouvons pas de solution. Nous avons une application qui référence quelque chose comme 24 DLL. Lorsque vous invoquez l'application la toute première fois (après la réinitialisation de l'application), le chargement du contenu prend 25 à 40 secondes.Temps de démarrage de l'application web asp.net. comment optimiser?

C'est ce que nous avons essayé: 1. precompile et publier tout en mode release 2. Retrait PDB du dossier bin 3. mettre de solides ensembles nommés dans GAC 4. application ensemble pour debug = false

S'il vous plaît considérez que le dossier entier de bin est composé par 24 dlls pour une taille totale de 28MB. Juste 4 de ces dlls sont forts nommés et ils sont de plus en plus 25MB.

Rien ne semble avoir changé. Que se passe-t-il EXACTEMENT lorsque l'application est démarrée est quelque chose que je ne pouvais pas trouver dans un livre ou un forum/blog/post ... Que pouvons-nous surveiller plus pour trouver où le problème est?

Merci beaucoup pour votre aide, Marco

Répondre

0

On dirait que vous aurez besoin d'utiliser NGen ...

Le Native Image Generator (Ngen.exe) est un outil qui améliore la performances des applications gérées. Ngen.exe crée des images natives, lesquelles sont des fichiers contenant le code machine spécifique au processeur , et les installe dans le cache de l'image native sur l'ordinateur local. Le runtime peut utiliser des images natives du cache à la place, en utilisant le compilateur juste-à-temps (JIT) pour compiler l'assembly original .

Precompile le site Web pour le déploiement, en utilisant des noms fixes, déployer la solution au serveur, puis Ngen tous ensembles dans bin

MSDN article on NGen.

+0

Ok, merci Daniel. Je sais à propos de JIT mais ce qui me semble absurde est que j'ai 10 de ces applications fonctionnant sur mon serveur de production et chacune de ces applications référence 5 Dll qui sont dans le GAC. Est-ce possible que le compilateur JIT compile CHAQUE DLL référencée par l'application même si elle a été compilée auparavant pour une autre application? Ce que je veux dire est ceci: supposons que l'application A référence Test.dll dans le GAC. L'application B fait également référence à Test.dll. Quand je tape la première fois l'application A, JIT prend Test.dll et la compile. Quand je frappe la première fois que l'application B est trop lente ... – Marconline

+0

A propos de aspnet_compiler.exe Je pense que c'est ce que Visual Studio 2010 fait quand je publie mon application. Ai-je tort? – Marconline

+0

Désolé, vous avez raison. J'étais complètement hors piste. J'ai édité ma réponse en conséquence. –

Questions connexes