2009-01-28 10 views
4

Je travaille sur une grande application (100s d'assemblys) asp.net et pendant le développement, la première page peut prendre quelques minutes à se charger après une recompilation.Accélérer le temps de chargement de l'assemblage .net pendant le développement

On me dit qu'une grande partie du retard provient des JIT des assemblages et que ce retard est proportionnel au nombre (mais pas à la taille) des assemblages. Je n'ai pas encore mesuré cela. Nous travaillons sur les changements architecturaux pour améliorer la situation (combiner les assemblages, découpler les applications) mais je me demandais s'il y a des correctifs rapides que je peux obtenir, par exemple, changer les paramètres IIS en développement ou combiner les DLLs post -construire.

Nous utilisons .net 3.5.

Des suggestions pour moi?

Répondre

2

penaud

est ici une solution que je l'ai essayé plus tôt: La désactivation de la protection antivirus réduit le temps de chargement initial d'environ une minute à moins de 8 secondes.

3

Jetez un coup d'œil sur la pré-compilation des applications pour supprimer le JIT.

ngen

Precompile les assemblées que vous ne travaillez pas sur, construire sur mesure configurations créent qui ne construisent pas les assemblées que vous n'êtes pas en train de travailler, et seulement ceux dont vous avez besoin JIT.

2

J'ai travaillé sur un projet similaire au vôtre avec des tonnes d'assemblages. Une stratégie que j'ai employée consistait à ne charger que les assemblages dont j'avais besoin pour le développement sur lequel je travaillais actuellement.

Une autre possibilité consiste à fusionner tous vos assemblys avec une action post-construction. Microsoft a cet outil astucieux appelé ILMerge. Il fusionne plusieurs assemblages en un seul. Vous pouvez écrire un script de post-construction pour fusionner ces assemblages.

Vous pouvez également aller plus loin en fusionnant les assemblages que vous ne modifiez pas et en les ajoutant comme références.

Le meilleur de la chance!

0

Vous pourriez regarder NGEN'ing vos assemblées mais si vous essayez d'accélérer développement temps après la construction puis NGEN ne va pas vraiment vous aider beaucoup. Le temps qu'il faudra pour JIT votre code serait tout à l'avance avec NGEN car vous devrez créer des instructions natives pour tout simplement tester. Si quoi que ce soit, NGEN'ing votre code serait plus lent à l'avant.

+0

non pas si vous obtenez les assemblages sur lesquels vous ne travaillez pas et ne les construisez pas en cours de développement, ils resteront pré-compilés et vous pouvez simplement travailler dans un bac à sable plus petit. –

+0

Oui - c'est ce que je prévois de faire maintenant. Je vais vous laisser savoir comment ça se passe. –

+0

Tom - bon point - j'ai supposé qu'il reconstruisait chaque chose à chaque fois. –

Questions connexes