64 votes

Performances du rasoir ASP.NET MVC 3

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ées. Ce que je vois, c'est:

asp.net mvc 2 aspx : 4200 demande par seconde

asp.net mvc 3 aspx beta 1: 3200 demande par seconde

asp.net mvc 3 rasoir beta 1: 1700 demande par seconde

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:

asp.net 4 - rps: 4780 cpu: %43

mcv 2 - rps: 4322 cpu: %58

mvc 3 beta 1 aspx - rps: 2324 cpu: %54

mvc 3 beta 1 rasoir - rps: 1615 cpu: %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é.

Mise à jour 3 Release Candidate 1 de référence:

mvc 3 rc1 de rasoir - rps: 1960 cpu: %54

Mise à jour 4 Release Candidate 2 de référence:

mvc 3 rc2 rasoir - rps: 2187 cpu: %54

mvc 3 rc2 aspx - rps: 4014 cpu: %58

Mise à jour de 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.

mvc 3 rc2 rasoir - rps: 3940 cpu: %58

mvc 3 rc2 aspx - rps: 4100 cpu: %58

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

26voto

marcind Points 38002

(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" ensemble du 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.

19voto

Darin Dimitrov Points 528142

Comment avez-vous réalisé la référence? Votre site a-t-il été déployé sur IIS en mode Release? Avez-vous utilisé la section <deployment retail="true" /> dans votre machine.config? N'oubliez pas non plus qu'ASP.NET MVC 3 est toujours en cours de développement; vous ne pouvez donc pas vous attendre à ce qu'il soit entièrement optimisé pour le moment. Au moins, attendez que RTM soit touché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X