Domanda

Aggiornamento importante: See aggiornamento 5 in fondo non v'è alcun problema di prestazioni in asp.net MVC 3, questo è un problema di riferimento

Ho fatto un semplice progetto ciao mondo in asp.net mvc2,3 aspx e 3 rasoio e li benchmark. Quello che vedo è:

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

Cosa c'è di sbagliato con il rasoio, è così lenta?

Aggiornamento: Ho rifatto il test. Tutte le directory virtuali 4 test utilizza la stessa .net 4 modalità integrata pool di app. Tutti i progetti sono fatti con add nuovo progetto vuoto x e l'aggiunta di 1 pagina con 1 riga di testo e senza codice. tutti i siti vengono compilati nella modalità di rilascio. Il mio sistema è Windows 7, 4 gb i7 4 core. Ho eseguito il test 2 volte per riscaldare iis e questi sono i risultati secondo run. apache parametri banco: ab -n100000 -c1000 risultati:

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%

Aggiorna 2 Scott Guthrie ha risposto nel suo blog:

  

non abbiamo ancora completamente ottimizzato MVC3 (di solito c'è un sacco di cache di messa a punto che facciamo). Ci aspettiamo rasoio per essere le stesse prestazioni del motore di visualizzazione aspx prima di essere finalmente uscito.

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

Aggiorna 5 tutti i test effettuati in modalità di rilascio, ma, il problema era debug="true" nel mio file web.config (che anche il rilascio effetti costruisce), dopo la modifica su false, Risolto il problema. Ed è interessante come è effettuare solo template rasoio a questa scala. Questo dovrebbe essere nella nostra mente sugli schieramenti.

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

Grazie a asp.net mvc squadra, ottimo lavoro!

È stato utile?

Soluzione

(nuova risposta per rispondere ai numeri RC2)

Grazie per i numeri aggiornati. A pochi punti:

  1. I tuoi numeri aspx guardare bene, nel senso che ci aspettiamo MVC3 aspx per essere alla pari con MVC2 aspx (un po 'più lento in un tale esempio Ciao Mondo è previsto)
  2. I tuoi numeri Rasoio aspetto sospetto. Sappiamo Razor è un po 'più lento del aspx equivalente, tuttavia, la differenza dovrebbe essere non più grande di 5% -7%. I suoi numeri indicano il 50% più lento, che semplicemente non corrisponde con i nostri risultati. Controllare se i compilazioni di progetto in uscita e si è impostato debug="false" nel web.config.
  3. Il tuo utilizzo della CPU è un po 'sospetto. Con 1000 richieste simultanee la CPU dovrebbe essere utlized 100%. (Anche solo 8 richieste simultanee dovrebbe essere sufficiente dal momento che si dispone di 8 core virtuali)
  4. I tuoi test sono in esecuzione per circa 20-25 secondi. Questo è un po 'sul lato basso a causa di una breve (1-2 secondi) scoppio di attività in altre parti del sistema potrebbe buttare fuori i risultati in modo significativo.
  5. relativa al punto 4, avete fatto funzionare ogni scenario una o un paio di volte? Stai vedendo molto varianza nei risultati? Dal momento che il sistema operativo sta facendo altre cose in background è tipico per vedere risultati diversi tra piste.

Altri suggerimenti

Come hai eseguito il punto di riferimento? È stato il sito distribuita in IIS in modalità di rilascio? Hai usato il sezione <deployment retail="true" /> nel vostro machine.config? Ricorda inoltre che ASP.NET MVC 3 è ancora in fase di sviluppo, quindi non ci si può aspettare che sia ancora pienamente ottimizzato. Almeno attendere fino a quando non colpisce RTM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top