Pergunta

ATUALIZAÇÃO IMPORTANTE: Consulte Atualização 5 Na parte inferior Não há problema de desempenho no ASP.NET MVC 3, este é um problema de referência

Fiz um simples projeto Hello World no ASP.NET MVC2,3 ASPX e 3 Razor e os comparei. O que vejo é:

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

O que há de errado com Razor, é tão lento?

Atualizar:Eu refiro o teste. Todos os 4 diretórios virtuais de teste usam o mesmo pool de aplicativos de modo integrado .NET 4. Todos os projetos são feitos com o novo projeto X Empty X e adicionando 1 página com 1 texto de linha e sem código. Todos os sites são compilados no modo de liberação. Meu sistema é Windows 7, 4 GB I7 4 núcleos. Eu executei o teste 2 vezes para aquecer o IIS e esses são resultados de segunda execução. Parâmetros do banco Apache: 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%

Atualização 2 Scott Guthrie respondeu em seu blog:

Ainda não otimizamos o MVC3 totalmente otimizado (geralmente há muito ajuste de cache que fazemos). Esperamos que o Razor seja o mesmo desempenho que o .aspx View Engine antes de finalmente ser lançado.

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

Atualização 5 Todos os testes feitos no modo de liberação, mas o problema foi debug="true" No meu arquivo web.config (que também afeta as compilações de liberação), depois de alterá -lo para false, emitir corrigido. E é interessante como está efetuando apenas modelos de barbear nessa escala. Isso deve estar em nossa mente nas implantações.

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

Graças à equipe do ASP.NET MVC, excelente trabalho!

Foi útil?

Solução

(nova resposta para responder aos seus números RC2)

Obrigado pelos números atualizados. Alguns pontos:

  1. Seus números ASPX parecem bons, no sentido de que esperamos que o MVC3 ASPX esteja em pé de igual
  2. Seus números de barbear parecem suspeitos. Sabemos que Razor é um pouco mais lento que o ASPX equivalente, no entanto, a diferença não deve ser maior que 5%a 7%. Seus números indicam 50% mais lentos, o que simplesmente não corresponde aos nossos resultados. Verifique se o projeto compila no lançamento e você tem debug="false" definido em web.config.
  3. Sua utilização da CPU é um pouco suspeita. Com 1000 solicitações simultâneas, a CPU deve ser utilizada 100%. (Mesmo apenas 8 solicitações simultâneas devem ser suficientes, pois você tem 8 núcleos virtuais)
  4. Seus testes estão em execução por cerca de 20 a 25 segundos. Isso é um pouco baixo, porque uma explosão curta (1-2 segundos) em outras partes do sistema pode desistir de seus resultados significativamente.
  5. Relacionado ao ponto 4, você executou cada cenário uma vez ou algumas vezes? Você está vendo muita variação nos resultados? Como seu sistema operacional está fazendo outras coisas em segundo plano, é típico ver diferentes resultados entre as execuções.

Outras dicas

Como você realizou a referência? Seu site foi implantado no IIS no modo de lançamento do modo? Você usou o <deployment retail="true" /> seção em sua máquina.config? Lembre -se também de que o ASP.NET MVC 3 ainda está sob desenvolvimento pesado, portanto você não pode esperar que ele seja totalmente otimizado ainda. Pelo menos espere até que ele atinja RTM.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top