Performance


Performance

Warum .net Code langsam sein kann

1. Weil es .net ist. Das Prinzip von .net basiert, ähnlich wie Java auf einer Runtime, welche den Code per JIT (Just in Time) Kompiler in Binärcode übersetzt. Dabei wird nicht die verwendete Sprache, wie z.B. C# übersetzt, sondern MSIL (Microsoft Intermediate Language) aus der Assembly (.dll) übersetzt. Dies passiert genau ein mal, beim Start der Applikation. Solang der IIS oder der AppPool nicht resettet wird, oder die Applikation nicht neu in msil übersetzt wird, muß auch die Kompilierung kein weiteres mal erfolgen. Nach der 1. kompilierung läuft .net absolut flüssig. Das ist also normal und nicht änderbar.

2. ASP.net verwendet zum speichern der Zustände von User/WebControls (das kann eine TextBox sein) eine Formular Hiddenvariable, um deren letzten Status zu speichern (Die Abbildung auf der rechten Seite zeigt den Viewstate von nur 2 einfachen Button Controls und 2 Label Elementen). Wenn ein Kunde z.B. tausende von Textfeldern und anderen Formularelementen auf eine Seite packt, bläht sich der so genannte Viewstate mehr und mehr auf und bei langsamen Verbindungen ist dann natürlich bei mehr zu übertragenen Daten, ein Geschwindigkeitsverlust zu spüren. Aber dabei handelt es sich selten um Datenmengen von mehr als 10-20kb was bei einer DSL Verbindung nicht wirklich etwas ausmacht. Aber sollte es bei einem Kunden dennoch zu einem solchen Problem kommen (Besonders bei DataGrid Controls (teilw. große Daten Tabelle)) kann der Viewstate auch deaktiviert werden durch setzen der Property „EnableViewstate“ auf „false“ direkt in der aspx Seite, im Tag des jeweiligen Controls. Wie die Controls dann Ihre alten Daten erhalten, ist Aufgabe des Entwicklers. Session Variablen wären z.B. eine Alternative.


  • 21.02.2018 15:08:40