Frage

Ich fand einige wilde Bemerkungen ASP.NET MVC ist 30x schneller als ASP.NET WebForms.Was echte Leistung ist der Unterschied, wurde dies gemessen und was sind die performance-Vorteile.

Das ist mir zu helfen, in Erwägung ziehen von ASP.NET WebForms zu ASP.NET MVC.

War es hilfreich?

Lösung

Wir haben noch nicht durchgeführt, die Art der Skalierbarkeit und perf-tests nötig sind um irgendwelche Schlussfolgerungen zu ziehen.Ich denke, ScottGu kann diskutiert haben Potenzial perf Ziele.Wie bewegen wir uns in Richtung Beta-und RTM, werden wir intern noch mehr machen perf testing.Allerdings bin ich mir nicht sicher, was unsere Politik ist auf die Veröffentlichung der Ergebnisse von perf-tests.

In jedem Fall sind solche tests wirklich benötigen, zu prüfen, real-Welt-Anwendungen...

Andere Tipps

Ich denke, das wird eine harte Frage definitiv beantworten, wie so vieles wird davon abhängen, A) wie implementieren Sie die WebForms-Anwendung, und B) wie Sie bei der Implementierung der MVC-Anwendung.In Ihrer "rohen" forms, MVC, ist wahrscheinlich schneller als WebForms, aber die Jahre und die Jahre die Werkzeuge und die Erfahrung haben produziert eine Reihe von Techniken für den Aufbau schnell WebForms-Anwendungen.Ich wäre bereit zu Wetten, dass ein senior ASP.NET Entwickler produzieren könnte ein WebForms-Anwendung, die Rivalen die Geschwindigkeit jedes MVC-Anwendung - oder zumindest erreichen einen vernachlässigbaren Unterschied.

Der wirkliche Unterschied- wie @tvanfosson schlug- ist in der Testbarkeit und sauber SoC.Wenn die Verbesserung der performance ist Ihre vornehmste Sorge, ich glaube nicht, dass es ein guter Grund, um zu springen Schiff auf WebForms und starten Sie re-Gebäude in MVC.Zumindest nicht, bis Sie habe versucht, die verfügbaren Techniken zur Optimierung WebForms.

Es ging eine meiner Seiten aus 2MB Nutzlast, zu 200k, nur durch die Beseitigung der viewstate und machen es erträglich Programmgesteuertes arbeiten mit dem vorgelegten Ausgabe.

Die Größe allein, auch wenn die Verarbeitung war dieselbe wird erstellen Sie große Verbesserungen in verbindungen pro Sekunde und die Geschwindigkeit der Anfragen.

Ich denke, dass viele Leute, die denken, dass WebForms sind von Natur aus langsame oder Ressourcen-intensiv sind, die Schuld an der falschen Stelle.9 mal von 10, wenn ich brachte zur Optimierung einer webforms-app gibt es zu viele Orte, an denen die apps, die Autoren missverstehen den Zweck der viewstate.Ich sage nicht, dass der viewstate ist perfekt, oder etwas, aber es ist zu leicht zu missbrauchen, und es ist dieser Missbrauch verursachen die aufgeblähten viewstate Feld.

Dieser Artikel wurde invalueable um mir zu helfen, zu verstehen, viele von diesen Missbrauch. https://weblogs.asp.net/infinitiesloop/truly-understanding-viewstate

Um einen gültigen Vergleich zwischen MVC und WebForms wir müssen sicher sein, dass beide apps sind mit der Architekturen korrekt.

Mein Test zeigt etwas zwischen 2x und 7x mehr req/sec auf MVC, aber es hängt davon ab, wie Sie bauen Ihre webforms-app.Nur mit "Hallo Welt" - text, ohne server-side control, mvc ist um 30-50% schneller.

Für mich die wirkliche "Leistung" Verbesserung in MVC ist die Erhöhung der prüfbaren Oberfläche der Anwendung.Mit WebForms es gab eine Menge der Anwendung, die schwer zu testen.Mit MVC der Umfang des Codes wird getestet werden grundsätzlich verdoppelt.Im Grunde alle, dass ist nicht leicht testbar ist der code, der das layout erstellt.Alle Ihre business-Logik und Daten-access-Logik, einschließlich der Logik, füllt die tatsächlichen Daten in der Ansicht verwendet wird-ist jetzt zugänglich zu testen.Während ich erwarte, dass er mehr Leistung bietet, als auch -- Lebenszyklus der Seite ist stark vereinfacht und mehr zugänglich zu web-Programmierung -- selbst wenn es der gleiche oder ein wenig langsamer, lohnt sich der Wechsel auf eine hochwertige Perspektive.

Ich denke, das problem hier ist, dass, egal wie viel schneller ASP.Net MVC ist als die alte webforms, es wird nicht einen Unterschied machen, weil die meisten der Zeit wird in der Datenbank.Die meisten der Zeit, die Sie web-Server wird sitzen auf 0-10% CPU-Auslastung, die nur darauf warten, auf deinen Datenbank-server.Es sei denn, Sie erhalten eine extrem große Zahl der Zugriffe auf Ihre website und Ihre Datenbank ist sehr schnell, Sie wird wahrscheinlich nicht bemerken einen großen Unterschied.

Die einzigen konkreten zahlen, die ich finden kann, die von der frühen ASP.NET MVC-Entwicklung ist in diesem forum-thread:

http://forums.asp.net/p/1231621/2224136.aspx

Rob Connery selbst etwas bestätigt die Aussage, dass ScottGu hat behauptet, dass ASP.NET MVC dienen kann 8000 Anfragen pro Sekunde.

Vielleicht ist Jeff und seine crew geben können, einige Art von Hinweis aus der Entwicklung dieser Website.

Entgegen der landläufigen Meinung, optimiert webforms Verwendung vollständig tötet MVC in Bezug auf die raw-Leistung.Webforms wurde hyper-optimiert für die Aufgabe dienen, html-weit mehr als MVC hat.

Metriken sind verfügbar http://www.techempower.com/benchmarks/#section=data-r7&hw=i7&test=db

Jeder einzelne Vergleich mvc ist auf der unteren Mittelschicht/untere-Obere Platzierungen auf der Liste, während die optimierte webforms Nutzung Plätze in der oberen Mittelklasse/oberen-unteren-rankings.

Vereinzelte, aber sehr ernst-Validierung, um diese Metriken, www.microsoft.com serviert wird von webforms nicht MVC.Wer hier glaubt, dass Sie nicht gewählt haben, MVC, wenn es empirisch schneller?

Es gibt wirklich keine Möglichkeit, diese zu beantworten.MVC verwendet die Web Forms view engine standardmäßig selbst, und kann so konfiguriert werden, um eine beliebige Anzahl von benutzerdefinierten anzeigen, Motoren, wenn Sie so wollen, ein performance-Vergleich werden Sie spezifischer sein müssen.

Ich begann die Arbeit in MVC vor etwa einem Jahr, war ich inspiriert, aber nicht beeindruckt.

Ich ungern die Ansicht Staat und sieht es als die Wurzel allen übels in Bezug auf ASP.NET.Dies ist der Grund, warum ich nicht es verwenden, und um ehrlich zu sein, warum würdest du?

Ich nahm im Grunde die ASP.NET MVC-Framework-Konzept und gebaut, dass es in meinen eigenen Weg.Ich änderte ein paar Dinge, though.Ich baute meine controller-wrapping-code oder URL-routing-code um dynamische Neukompilierung.

Nun, ich würde so weit gehen zu sagen, dass ASP.NET MVC-Anwendungen werden schneller, basierend auf, wie Sie es verwenden.Wenn Sie vollständig aufzugeben WebForms Sie werden schneller, weil der ASP.NET life-cycle-und Objekt-Modell ist humongous.

Wenn du schreibst du bist die Instanziierung einer Armee...Nein, warte, eine legion von Objekten, die Teil der Darstellung Ihrer anzeigen.Das ist natürlich langsamer, als wenn Sie, wo zu express die minimale Menge von Verhalten in der ASPX-Seite selbst.(I don ' T care über-Ansicht-engine Abstraktion, da die Unterstützung für ASPX-Seiten in Visual Studio ist anständig, aber die habe ich komplett verworfen WebForms als ein Konzept, und im Grunde jedem ASP.NET Rahmen durch code aufblasen oder die nicht in der Lage zu ändern die Dinge, die Draht meiner Anwendung).

Ich habe Wege gefunden, sich auf dynamische Neukompilierung (System.Reflexion.Emittieren) for emitting speziellen Zweck, Objekte und code wenn benötigt.Die Ausführung dieser code ist schneller als die Reflexion, sondern zunächst entstehen durch die Reflexion service.Das hat meine MVC-flavoured Rahmen, große performance, aber auch sehr statisch typisiert.Ich benutze nicht die strings und name/Wert-paar Sammlungen.Stattdessen meine benutzerdefinierte compiler-services geht in einem schreibt eine post zu einer controller-Aktion übergeben Sie einen Verweis geben.Hinter der Szene gibt es eine Menge Dinge, aber dieser code ist schnell, viel schneller als WebForms oder MVC-Framework.

Auch glaube ich nicht schreiben, URLs, Schreibe ich lambda-Ausdrücke, übersetzt in URLs, die später sagen, die controller-Aktion aufgerufen wird.Dies ist nicht besonders schnell, aber es schlägt mit gebrochenen URLs.Es ist so, wie wenn Sie hatte statisch typisierte Ressourcen sowie statisch typisierte Objekte.Eine statisch typisierte web-Anwendung?Das ist das, was ich will!!!

Ich würde mehr Leute dazu ermutigen, es auszuprobieren.

Die erstellten Projekte mit visual studio.Man mvc4-Vorlage, ein weiteres Webformular (tranditional).Und wenn make-load-test mit WCAT, dies ist das Ergebnis,

MVC4 ist ziemlich langsam, als WebForms, irgendwelche Ideen?

enter image description here

MVC4

  • bekommen könnte über 11 rps
  • rps ist ziemlich niedrig sind sowohl 2-als cpu-oder 4-cpu-server

enter image description here

Formulare (aspx)

  • bekommen könnte über 2500 rps

  • die performance-killer wurde festgestellt, dass es ein bug von MVC Bata-oder RC.Und Die Leistung verbessern würde, wenn ich einmal entfernen Bundles Dinge.Jetzt die neueste version behoben.

Die Leistung hängt davon ab, was Sie tun...In der Regel MVC ist schneller als asp.net vor allem, weil Viewstate abwesend ist, und weil MVC arbeitet mehr mit Rückruf als Postback durch Standard.

Wenn Sie bei der Optimierung Ihrer webform-Seite können Sie die gleiche Leistung wie MVC, aber es wird eine Menge Arbeit.

Auch Ihr ist eine Menge von nugets für MVC (und auch für Webform), um Ihnen zu helfen zu verbessern, die website-Leistung wie kombinieren und verkleinern Sie Ihr css und javascripts, gruppieren Sie Ihre Bilder und verwenden Sie Sie als ein sprite, und so auf.

Website performance hängt stark von Ihrer Architektur.Sauber mit gute Trennung von Bedenken wird bringen Sie eine saubere Codes und eine bessere Vorstellung davon, wie die Leistung zu verbessern.

Werfen Sie einen Blick auf diese Vorlage "Neos-SDI-MVC-Vorlage"das wird für Sie zu schaffen eine saubere Architektur mit vielen performance-Verbesserungen durch Standard (überprüfen Sie MvcTemplate website).

enter image description here

Ich habe ein kleines VSTS laden, testen, Experimentieren Sie mit einigen basic-code und gefunden ASP.NET MVC Antwortzeit zu zweimal schneller als im Vergleich zu ASP.NET Webforms.Oben ist die beigefügte Grafik mit der Zeichnung.

Lesen Sie dieses Last-test-experiment in details von dieser Artikel CP https://www.codeproject.com/Articles/864950/ASP-NET-MVC-vs-ASP-NET-WebForm-performance-compari

Test wurde durchgeführt mit den unten Spezifikationen mit VSTS und telerik-Last-test-software:-

Benutzer laden 25 Benutzer.

Laufen Dauer der Prüfung 10 Minuten.

Maschine config DELL 8 GB Ram, Core i3

Projekt wurde hosted in IIS 8.

Projekt war erstellt mit MVC 5.

Netzwerk LAN-Verbindung angenommen wurde.Also dieser test nicht berücksichtigt, für die Netzwerk-lag für jetzt.

Browser im test ausgewählt, Chrome und Internet explorer.

Mehrere der Lektüre, wo die während der test-Durchschnitt unbekannte Ereignisse.7 Lesungen, wo sich genommen und alle Messwerte sind veröffentlicht in diesem Artikel zu Lesen 1 , 2 und so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top