Prestanda i asp.net webforms och mvc

Jag har redan skrivit om repeatern och dess prestanda när man använder webforms.
När man jobbar med MVC så skall man inte jobba med färdiga .net-kontroller och därför ville jag testa prestandaskillnaden.

Jag skrev ihop ett mycket enkelt exempel, där jag använde en repeater och band den till en kollektion med 100 poster som listades upp. Repeatern innehöll två literals, två images och en button för varje post. Jag gjorde sedan motsvarande i MVC men då utan .net-kontrollerna. Istället skrev jag ut html-koden direkt och använde foreach() för att iterera igenom kollektionen.

Resultatet var inte helt förvånande till mvc fördel, men skillnadernas storlek tycker jag bör uppmärksammas.

Förutom att html-koden gick från 200kb med webforms till 87kb med mvc (ingen viewstate och inga överdrivet långa name/id-attribut), så blev laddningstiden mycket bättre.

Tid att ladda sidan med webforms: 0,07 ms.
Tid att ladda sidan med mvc: 0,009 ms.

Just tiden att ladda sidan 0,07 ms kan tyckas vara tillräckligt snabbt och att man som användare inte märker någon skillnad mellan 0,07 ms och 0,009 ms. Men det man får tänka på är att det totala antalet requests/sec som en server kan hantera blir mindre ju längre tid en sida tar att ladda.
Utöver det tar webforms-versionen mer minne från servern.

Jag testade att köra igenom så många requests/sec som var möjligt på en ensam dator.

Max med webforms: 166 requests/sec
Max med webforms (utan viewstate): 298 requests/sec
Max med mvc: 681 requests/sec

Det visar sig alltså att om man bygger sidan med mvc istället för webforms kan samma server hantera mer än fyra gånger fler requests/sec.
Kortfattat kan man – i princip – säga att man behöver köpa en server istället för fyra.

Märk väl att detta inte är hela sanningen eftersom det går att förbättra prestandan mycket i webforms genom exempelvis cachning (givetvis även i mvc), men oavsett det så är det enklare att bygga snabba applikationer med mvc jämfört med att använda de färdiga kontroller som finns i webforms.

Kommentarer inaktiverade.

%d bloggare gillar detta: