2010-04-22 5 views
1

J'ai un doute ici, j'ai une application Web asp.net MVC et tous les soirs nous recycing le pool d'applications d'IIS. Maintenant, lorsque la première demande du jour suivant arrive, il faut du temps pour obtenir une réponse.Le compilateur JIT reviendra ici?

Première demande, cela prend du temps car le domaine de l'application n'est pas chargé (l'application n'est pas démarrée) pour démarrer l'application web cela prend du temps.

Maintenant la question est de savoir si le compilateur juste à temps reviendra ici? Signifie tous les matins qu'il doit être recompilé par JIT à nouveau?

Répondre

2

Oui, l'application sera compilée à partir de IL vers le code exécutable à nouveau après le recyclage: Jeter l'appdomain perdra également les images natives JITed.

Vous pouvez, par exemple, éviter une partie de la compilation en mettant des assemblages dépendants qui ne changent pas souvent dans le GAC et en utilisant NGEN. Cela pourrait éventuellement accélérer les choses.

+1

Vous pouvez ajouter une ligne dans le travail planifié qui recycle le pool d'applications qui accède à l'application et provoque par conséquent la juxtaposition de l'application. –

2

JITting n'aura normalement pas un énorme impact sur les performances. Le démarrage à froid du processus IIS, le démarrage de votre AppDomain et le chargement de vos assemblys à partir du disque auront probablement un impact beaucoup plus important. En outre, votre application peut avoir une logique de démarrage personnalisée dans le fichier global.asax (lecture de données à partir de DB). Et n'oubliez pas que votre base de données pourrait également devoir se réveiller.

Questions connexes