2009-08-24 18 views
2

ich gerade fragen, wie viel von einer Leistung werden Sie verlieren durch viele Teilansichten und HTML-Helfer in einer asp.net Mvc-Anwendung.Leistungs Fragen zu asp.net Mvc (Teilansichten und HTML-Helfer)

Wie weiß ich, html Helfer geringes Gewicht sein, aber ich kann sie nicht sehen, so schnell zu machen, als ob Sie nur gerade html gemacht.

Versteh mich nicht falsch, ich liebe sie, aber nur neugierig, wie viel sie Ihre Website auswirken würde. Ich vermute nicht viel, aber einige dieser HTML-Helfer können kompliziert werden und ziemlich viel tun.

Auch ich mag mit Teilansichten, da viele meiner Teile meiner Website braucht im Grunde der gleiche Code so könnte genauso gut versuchen, den doppelten Code zu beseitigen, damit ich es in Teilansichten wie wenn man.

Wie viel Performanceeinfluss haben Teilansichten?

Antwort

2

Ich habe keine Beweise, um dies zu untermauern, aber ich würde fast keine davon annehmen. Vor allem für HTML-Helfer - es ist nur ein zusätzlicher Methodenaufruf. Sie könnten den Code aus dem Helfer in die Ansicht kopieren und einfügen, und Sie hätten nur eine weniger Methode auf dem Stapel erreicht.

1

Ihre Server-Hardware und Netzwerk-Infrastructure 'wird eher ein limitierender Faktor sein als die HTML-Helfer und Teilansichten. Denk nicht darüber nach.

0

Dies ist eine vorzeitige Optimierung. Schreiben Sie es zuerst, dann profilieren Sie es. Wenn Sie feststellen, dass die Leistung nicht Ihren Anforderungen/SLA entspricht, verwenden Sie die Profilerstellungs-Tools, um den schlecht funktionierenden Code zu finden. Es wird wahrscheinlich nicht die HTML-Hilfsmethoden sein, es werden Dinge wie Datenbankaufrufe und andere übergreifende Prozessaufrufe sein.

+0

Irgendwelche guten Profilwerkzeuge? Ich bin weit davon entfernt, einen zu brauchen, aber das war nur mehr Neugier, um zu sehen, wie viel sie verwenden würden. Ich bezweifle jedoch, dass ein Problem von ihnen kommt. – chobo2

+0

ANTS Profiler von Redgate ist der einzige, den ich benutzt habe. Es funktioniert ziemlich gut. –

2

Ich stimme generell zu, dass es fast keinen Overhead gibt, und dass es eine vorzeitige Optimierung wäre, um beides zu vermeiden. Allerdings gibt es zwei wichtige Ausnahmen, die Sie beachten sollten:

  • viele Teilansichten verwenden wird sehr langsam sein , wenn der ASP.NET-Compiler im Debug-Modus nur kompiliert. Im Debug-Modus speichert MVC keine Dateispeicherorte. Daher muss MVC jedes Mal prüfen, wenn eine Ansicht gerendert wird. Lass dich nicht täuschen! Dieses Problem verschwindet im Freigabemodus.

  • In der MVC Futures Montage für MVC 1.0, gibt es einige "stark typisierte" HTML-Helfer sind, die (1) über 10x langsamer als die Helfer in der System.Web.Mvc Montage und (2) sind wahrscheinlich Inkompatibel (in Bezug auf die Syntax) mit den (vermutlich von einer Performance-POV verbesserten) "stark typisierten" Helfern, die in MVC 2 kommen. Ich würde vorschlagen, von diesen wegzubleiben.

Aber im Allgemeinen stimme ich: Schreiben richtig Code zuerst, dann Profil.

Verwandte Themen