Question

Mise À Jour Importante:Voir mise à jour 5 au fond il n'y a pas de problème de performances asp.net mvc 3, c'est une émission benchmark

J'ai fait un simple hello world projet asp.net mvc2,3 aspx et 3 de rasoir et comparés entre eux.Ce que je vois, c'est:

System                  Requests per second
-------------------------------------------
asp.net mvc 2 ASPX                     4200
asp.net mvc 3 Beta 1 ASPX              3200
asp.net mvc 3 Beta 1 Razor             1700

Quel est le problème avec le rasoir, c'est si lent?

Mise à jour: J'ai refait le test.Tous les 4 test répertoires virtuels utilise le même .net 4 mode intégré d'application de la piscine.Tous les projets sont réalisés avec ajout de nouveau vide x de projet et en ajoutant 1 page avec 1 ligne de texte et sans code.tous les sites sont compilé en mode release.Mon système est windows 7, 4 go i7 4 cœurs.J'ai exécuter le test 2 fois pour se réchauffer iis et ce sont les résultats de la deuxième manche.apache bench paramètres :ab -n100000 -c1000 résultats:

System         Requests per second   CPU Utilization
----------------------------------------------------
asp.net 4                     4780               43%
mcv 2                         4322               58%
mvc 3 beta 1 aspx             2324               54%
mvc 3 beta 1 razor            1615               54%

Mise à jour 2 Scott Guthrie a répondu sur son blog:

Nous n'avons pas entièrement optimisé MVC3 encore (il y a souvent beaucoup de cache réglage nous n').Nous nous attendons à ce rasoir à la même performance que l' .aspx moteur d'affichage avant, il est finalement libéré.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc1 razor               1960               54%
mvc 3 rc2 razor               2187               54%
mvc 3 rc2 aspx                4014               58%

Mise à jour 5 tous les tests effectués en mode release, mais le problème était debug="true" dans mon web.fichier de configuration (qui a également des effets release), après changement de la valeur false, problème résolu.Et il est intéressant de voir comment c'est effectuer seulement rasoir de template à cette échelle.Cela devrait être dans notre esprit sur les déploiements.

System         Requests per second   CPU Utilization
----------------------------------------------------
mvc 3 rc2 razor               3940               58%
mvc 3 rc2 aspx                4100               58%

Grâce à asp.net mvc équipe, excellent travail!

Était-ce utile?

La solution

(une nouvelle réponse répondre à vos RC2 numéros)

Merci pour les chiffres mis à jour.Quelques points:

  1. Votre Aspx numéros regardez bien, dans le sens que nous nous attendons à MVC3 Aspx pour être à égalité avec MVC2 Aspx (un peu plus lent dans un tel exemple Hello World est prévu)
  2. Votre Rasoir numéros regard suspect.Nous savons Rasoir est un peu plus lent que l'équivalent Aspx, cependant, la différence doit pas être supérieure à 5%-7%.Vos numéros indiquent 50% plus lent, ce qui n'est tout simplement pas d'accord avec nos résultats.Vérifier si le projet se compile en Release, et vous avez debug="false" au web.config.
  3. Votre utilisation du PROCESSEUR est un peu suspect.Avec plus de 1000 demandes simultanées le PROCESSEUR doit être utlized 100%.(Même seulement 8 demandes simultanées devrait être suffisant puisque vous avez 8 cœurs virtuels)
  4. Vos tests sont en cours d'exécution pendant environ 20 à 25 secondes.C'est un peu sur le bas côté en raison d'un court (1 à 2 secondes) des pics d'activité, ailleurs dans le système pourrait se débarrasser de vos résultats, de façon très significative.
  5. Lié au point 4, avez-vous d'exécuter chaque scénario une fois ou plusieurs fois?Voyez-vous beaucoup de variance dans les résultats?Depuis votre OS est en train de faire d'autres choses dans le contexte, il est typique de voir des résultats différents entre les courses.

Autres conseils

Comment avez-vous fait le test?A votre site déployée sur IIS en mode Release?Avez-vous utilisé l' <deployment retail="true" /> section dans votre machine.config?Rappelez-vous aussi que ASP.NET MVC 3 est encore en développement donc ne vous attendez pas à être entièrement optimisé encore.Attendez au moins jusqu'à ce qu'il frappe RTM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top