2009-10-19 6 views
2

Je développe une solution à forte charge avec la version finale de asp.net mvc. Récemment, notre équipe a remarqué que la plupart du temps qui prend un serveur pour répondre au client est consacré au rendu des pages. Le calendrier simple ressemble à ceci:Performances du moteur de visualisation ASP.NET MVC

Page start - 1.8608363s 
Render module 1140/Modules/Owners start  - 1.86859s 
Render module 1140/Modules/Owners Complete - 1.9081751s 
Render module 829/Modules/Links start - 1.9081788s 
Render module 829/Modules/Links Complete  - 2.3380648s 
Render module 1036/Modules/Advertisement start - 2.3459101s 
Render module 1036/Modules/Advertisement Complete - 2.3482298s 
Render module 1110/Modules/Goodies start  - 2.3482322s 
Render module 1110/Modules/Goodies Complete  - 2.6300744s 
Render module 1004/Modules/TopicLinks start  - 2.6300784s 
Render module 1004/Modules/TopicLinks Complete - 3.8852529s 
Render module 1048/Modules/News start - 3.8927697s 
Render module 1048/Modules/News Complete  - 4.4958795s 
Render module 1128/Modules/SuggestedLinks start  - 4.4958832s 
Render module 1128/Modules/SuggestedLinks Complete - 4.5704227s 
Page end  - 4.5711193s 
TopicMainMenuPages start  - 4.5717661s 
TopicMainMenuPages End - 4.571974s 
Render Finished  - 4.6185852s 

Quelle pourrait être la raison d'un rendu aussi lent? Est-ce souvent pour l'utilisation du rendu partiel lors d'une requête unique?

+0

est @ Daniel sur place. Même dans MVC 3 en mode release, Render partial est lent. J'étais curieux de savoir pourquoi la page d'accueil de l'application web mvc par défaut a pris près de 200ms, je googlé et trouvé ce poste. Après avoir lu ce message, j'ai supprimé les appels Html.RenderPartial du modèle maître et les temps de rendu ont été supprimés à 2 ms même en mode débogage. Pour les pages dynamiques qui ne sont pas correctement mises en cache, Html.RenderPartial est probablement suspect lorsque vous rencontrez des problèmes de performances. – Glenn

Répondre

5

Assurez-vous que le compilation debug="false" dans votre web.config et créez votre application en mode de libération. Cela permettra au framework MVC de mettre en cache les chemins qu'il résout pour vos vues partielles.

Voir le article here pour plus d'informations.

Bonté,

Dan

+0

Merci, Daniel. Cela nous a donné jusqu'à 2 secondes de performance en moyenne. Tout le reste dépend de nos modules BL. –

+0

Heureux d'être de l'aide :) Dan –

+0

Ma page prenait 10 sec à charger et maintenant c'est moins de 1 sec! –

Questions connexes