Bei Web-Apps für Unternehmen zählt jedes bisschen.
Welche Leistungstipps können Sie teilen, damit Programmierer effizienter programmieren?
Um es zu starten:
Verwenden Sie StringBuilders für Strings, da Strings änderbar sind (sie werden jedes Mal neu erstellt, wenn Sie sie ändern).
Vermeiden Sie die Verwendung von Datasets, da diese sehr aufgebläht sind. Verwenden Sie stattdessen SqlReader.
Die Punkte in der Frage sind Mikro-Optimierungen. Ich stimme der Prämisse zu, dass "jedes kleine bisschen hilft" - besonders wenn es auf Kosten der Lesbarkeit geht.
Wenn Sie Ihren Code wirklich leicht lesen und verstehen können, bedeutet das, dass Sie leicht architektonische Änderungen vornehmen können. Das sind die wirklich großen Gewinne, nicht die Mikrooptimierung. Je mehr Sie versuchen, den Code aus jeder Codezeile zu optimieren, desto schwieriger wird es, das gesamte Design zu refaktorisieren.
Also meine Tipps sind:
Dies ist bisher nicht spezifisch für Web-Apps. Für Web-Apps (und serverseitig im Allgemeinen):
EDIT: Ich habe die Datenbank überhaupt nicht angesprochen. Kyles Antwort ist an dieser Front gut. Stellen Sie sicher, dass Ihre Datenbank auch skaliert werden kann, wenn möglich:)
Die größten Vorteile, die Sie in (fast) jeder Anwendung sehen werden, ist die Optimierung Ihrer Datenbank.
Kodierung ...
Datenbank ...
Und wenn alles andere fehlschlägt, cache die Scheiße daraus und wirf mehr Hardware auf das Problem! :)
Wir gehen jeden Tag damit um.
Wir cachen einige Datensätze, die verwendet werden. Wir haben einen ziemlich komplexen Caching-Mechanismus für Datenschichten, der für uns gut funktioniert.
Faule Bewertung für fast alles.
Seiten- und partielles Caching für Benutzersteuerelemente
Wir verwenden den Sitzungszustand überhaupt nicht, also haben wir ihn komplett deaktiviert.
Konfigurieren Sie Websites so, dass sie als bekannter Benutzer mit niedriger Priorität ausgeführt werden.
Stellen Sie eine Verbindung zu SQL Server als derselbe Benutzer mit niedriger Priorität her. Dies hilft beim Verbindungs-Pooling - alle Verbindungen sind im Wesentlichen die gleichen.
KEINE Ad-hoc-SQL. Stored Procs NUR. Hilft mit performand UND SQL-Injektion.
string.Concat () anstelle von String + String + ... oder StringBuilder
Außer Manwood hat niemand ViewState erwähnt und es ist ziemlich überraschend. Ich würde ViewState Management als die wichtigsten Faktoren für die Leistungsverbesserung wählen.
Meine Liste:
Bearbeiten: [hinzugefügt 6-8]
Microsoft hat ein Buch mit dem Titel veröffentlicht Verbesserung der .NET-Anwendungsleistung und Skalierbarkeit Dies ist ein Muss Buch lesen.
Abgesehen von der Datenbank ist noch eine sehr wichtige Sache zu sehen ...
Seitengröße und Anzahl der Anfragen Dies sollte selbstverständlich sein, aber ASP.NET ist notorisch schlecht darin, Ihre Seiten mit einer Menge Mistausgabe zu füllen (die Größe nach oben zu treiben) und eine Million externer Skriptdateien (Anzahl von Anfragen) zu erstellen.
Überprüfen Sie das Protokoll und minimieren Sie die Menge an HTML, die pro Anfrage geliefert wird. Viewstate und aufgeblähte Kontrollen von Drittanbietern können Ihre Anwendung ruinieren. Zum Beispiel verwendeten wir lange Zeit das Gitter von Infragistics. sehr sehr fähig, aber sogar in seiner entkleideten Form hat es Seiten von ca. 60-90k + viel Java-Script gemacht. Dies schränkte die Anzahl der Anfragen, die wir auch bei einer internen Gigabit-Verbindung ausführen konnten, stark ein.
Nach meiner Erfahrung machen die folgenden Dinge einen großen Unterschied:
Tags und Links .net asp.net performance