Pregunta

Actualización importante: véase la actualización 5 en la parte inferior que no hay problema de rendimiento en asp.net MVC 3, este es un tema de referencia

He hecho un proyecto simple hola mundo en asp.net mvc2,3 aspx y 3 de afeitar y ellos como punto de referencia. Lo que veo es:

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

¿Qué pasa con la maquinilla de afeitar, es tan lenta?

Actualización: He hecho de nuevo la prueba. Todos los directorios virtuales de prueba 4 utiliza el mismo .net 4 modo integrado de grupo de aplicación. Todos los proyectos se realizan con Agregar nuevo proyecto vacía x y la adición de 1 página con 1 línea de texto y sin código. todos los sitios se compilan en modo de lanzamiento. Mi sistema es Windows 7, 4 gb i7 de 4 núcleos. Me he encontrado la prueba 2 veces para calentar IIS y estos son los resultados del segundo plazo. Apache Bench parámetros: ab -n100000 -c1000 Resultados:

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%

Actualización 2 Scott Guthrie respondió en su blog:

  

no hemos optimizado totalmente MVC3 todavía (por lo general hay una gran cantidad de caché de sintonía que hacemos). Esperamos que la maquinilla de afeitar sea el mismo rendimiento que el motor vista .aspx antes de ser finalmente liberado.

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

Actualización 5 todas las pruebas que se realizan en modo de lanzamiento, pero, el problema era debug="true" en mi archivo web.config (que también la comunicación a efectos construye), después de un cambio en false, ha solucionado el problema. Y es interesante cómo se efectúa solamente plantillas de afeitar a esta escala. Esto debería estar en nuestra mente en los despliegues.

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

Gracias a asp.net mvc equipo, excelente trabajo!

¿Fue útil?

Solución

(nueva respuesta para responder a sus números RC2)

Gracias por las cifras actualizadas. Un par de puntos:

  1. Sus números Aspx se ven bien, en el sentido que esperamos MVC3 Aspx estar a la par con MVC2 Aspx (un poco más lento en un ejemplo tan Hello World se espera)
  2. Sus números de la maquinilla de afeitar se ven sospechoso. Sabemos Razor es un poco más lento que el Aspx equivalente, sin embargo, la diferencia no debe ser mayor del 5% -7%. Sus números indican un 50% más lento, lo que simplemente no coincide con nuestros resultados. Comprobar si las compilaciones de proyectos en la liberación y ha ajustado debug="false" en web.config.
  3. Su utilización de la CPU es un poco sospechoso. Con 1000 solicitudes simultáneas la CPU debe utlized 100%. (Incluso sólo 8 peticiones concurrentes deben ser lo suficientemente ya que tiene 8 núcleos virtuales)
  4. Sus pruebas se ejecutan durante unos 20-25 segundos. Eso es un poco en el lado de baja debido a un corto (1-2 segundos) explosión de la actividad en otro lugar en el sistema podría deshacerse de sus resultados de forma significativa.
  5. relacionados con el punto 4, corriste cada escenario una vez o varias veces? ¿Usted está viendo mucha variación en los resultados? Debido a que su sistema operativo está haciendo otras cosas en el fondo que es típico ver resultados diferentes entre ejecuciones.

Otros consejos

¿Cómo se realiza el punto de referencia? Se implementa en su sitio IIS en modo de lanzamiento? ¿Ha empleado el sección <deployment retail="true" /> en su machine.config? Asimismo, recuerda que ASP.NET MVC 3 está todavía en desarrollo pesado por lo que no se puede esperar que sea totalmente optimizado todavía. Al menos espera hasta que llega a RTM.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top