2010-08-06 30 views
1

J'ai remarqué que mon site Web devenant de plus en plus gros, le temps que met mon ordinateur portable à afficher ma page est beaucoup plus long que de dire de nouveaux projets avec un minimum de références.Les références externes ralentissent-elles mon application ASP.NET? (VS: Ajouter une boîte de dialogue de référence)

Je pense qu'il ya deux variables en jeu qui affectent ASP.NET temps de préchauffage:

  • La quantité de références externes
  • Le temps qu'il faut pour un processus de travail new() jusqu'à chaque instance par processus de travail
  • temps supplémentaire pour les objets WCF comme ServiceHost peut être dans une DLL externe

d'abord, sont ceux des variables correctes pour prendre en acc ount en considérant le temps de démarrage d'ASP.NET?

Ensuite, il semble que web.config puisse envoyer d'autres objets pour certains types de fichiers (* .svc, * .aspx, Windows Identity Foundation (WIF), etc.). Cela aussi peut provoquer des retards dans ASP.NET. Enfin, mon projet est créé en tant que "projet web" et non "site web". Je ne sais pas si cela a un impact.

Ma théorie est-elle remplie de trous, ou y a-t-il quelque chose que je puisse faire pour améliorer le développement sur un vieux portable?

Répondre

1

Le processus de travail chargera toutes les références dans l'AppDomain quand elles sont nécessaires. Cela signifie que lorsque l'application démarre pour la première fois, tous vos assemblages référencés ne peuvent pas être chargés. Si vous trouvez une grande partie de votre temps d'amorçage (le temps de démarrage initial de l'application) augmente, je considérerais exactement ce que vous faites dans votre méthode Application_Start, etc. L'autre chose à retenir, c'est que ce temps de démarrage initial est essentiellement un one off, il ne se produira que pour chaque démarrage de l'application (n'oubliez pas quand votre pool d'applications est également recyclé). Parce que c'est une chose unique, le temps de démarrage est-il important? Une fois que le site a eu sa page initiale, l'exécution à partir de ce moment devrait être assez rapide.

Vous pouvez exécuter quelque chose comme ANTS Profiler, ou dotTrace et profil exactement où tout le temps est passé, puis décider des améliorations de performances que vous souhaitez effectuer en fonction de ces informations.

+0

Abbot La principale raison pour laquelle je me soucie du temps de démarrage est parce que je génère beaucoup de builds avant de sortir en production ... et je travaille avec une copie quasi-inexacte de mon site. Maintenir ce grand site prend du temps et devient inefficace. – LamonteCristo

+0

Prenez-vous un profileur et voyez ce qui se passe. Il semblerait que votre code fasse potentiellement quelque chose de chronophage. Un profileur doit mettre en évidence les processus de longueur pour vous. –

+0

Peut-être même que VS fait une compilation qui prend longtemps. Pouvez-vous me diriger vers des informations de profilage 101? Je n'ai jamais fait ça avant ... surtout dans ce contexte. – LamonteCristo