Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15688|Antwort: 0

[ASP.NET] 8 Möglichkeiten, die Leistung Ihrer ASP.NET Web-API zu verbessern

[Link kopieren]
Veröffentlicht am 11.01.2016 14:37:43 | | | |
ASP.NET Web-API ist eine großartige Technologie. Das Schreiben von Web-APIs ist so einfach, dass viele Entwickler keine Zeit darauf verwenden, ihre Anwendungen zu strukturieren, um eine gute Ausführung zu erzielen.
In diesem Artikel werde ich 8 Techniken behandeln, um die Leistung ASP.NET Web-APIs zu verbessern.
1) Das schnellste JSON-Serialisierungstool verwenden
Die Serialisierung von JSON hat einen entscheidenden Einfluss auf die Leistung der gesamten ASP.NET Web API. In einem meiner Projekte bin ich für anderthalb Jahre vom JSON.NET Serializer auf ServiceStack.Text umgestiegen.
Ich habe gemessen, dass sich die Leistung der Web-API um etwa 20 % verbessert hat. Ich empfehle dir dringend, dieses Serialisierungstool auszuprobieren. Hier sind einige aktuelle Vergleichsdaten zur Leistung beliebter Serialisierungstools.
SerializerPerformanceGraf
Quelle: theburningmonk
Update: Es scheint, als würde StackOverflow Jil verwenden, ihr bisher angeblich JSON-Serialisierungstool. Testdaten finden Sie auf ihrer GitHub-Seite Jil serializer.
2) Manuelle Serialisierung von JSON aus DataReader
Ich habe diesen Ansatz in meinen Projekten angewendet und Leistungsleistungen erhalten.
Man kann manuell JSON-Strings aus dem DataReader erstellen und unnötige Objekterstellung vermeiden, sodass man keine Werte aus dem DataReader nehmen und auf Objekte schreiben muss, dann Werte aus diesen Objekten nehmen und den JSON Serializer verwenden, um JSON zu erzeugen.
Verwenden Sie StringBuilder, um JSON zu generieren und StringContent am Ende als Inhalt der Antwort in der WebAPI zurückzugeben.

Weitere Wege dazu finden Sie auf Rick Strahls Blog
3) Andere Protokollformate (Protokollpuffer, Message Pack) so weit wie möglich zu verwenden
Wenn Sie andere Nachrichtenformate in Ihrem Projekt verwenden können, wie Protocol Buffers oder MessagePacks, anstatt JSON zu verwenden.
Sie erhalten einen enormen Leistungsvorteil, nicht nur weil Protokollpuffer sehr schnell in der Serialisierung sind, sondern auch, weil sie in den zurückgegebenen Ergebnissen schneller formatiert werden als JSON.
4) Implementierung von Kompression
Nutze GZIP oder Deflate in deiner ASP.NET Web-API.
Kompression ist eine einfache und effektive Methode, um die Größe und Reaktionsfähigkeit von Antwortpaketen zu reduzieren.
Das ist eine sehr notwendige Funktion, Sie können weitere Artikel über Kompression in meinem Blog lesen ASP.NET Web API GZip Compression ActionFilter mit 8 Codezeilen.
5) Caching verwenden
Die Verwendung von Output-Caching in der Web-API-Methode ist tiefgreifend. Zum Beispiel, wenn eine große Anzahl von Nutzern auf Antwortinhalte zugreifen, ändert sich das nur einmal täglich.
Wenn Sie manuelles Caching implementieren möchten, zum Beispiel das Speichern von Benutzerpasswörtern ins Gedächtnis, sehen Sie sich meinen Blogbeitrag "Einfache Möglichkeit, Caching in ASP.NET Web-API umzusetzen.
6) Typische ADO.NET wann immer möglich verwenden
Manuell geschriebene ADO.NET ist immer noch der schnellste Weg, Werte aus der Datenbank zu erhalten. Wenn dir die Leistung deiner Web-APIs wirklich wichtig ist, dann nutze keine ORMs.
Man kann Leistungsvergleiche zwischen den beliebtesten ORMs sehen.
ORMMapper


Dapper und handgeschriebener Fetch-Code sind schnell, und tatsächlich sind alle ORMs langsamer als die drei.
LLBLGen mit einem Resultset-Cache ist schnell, aber es muss das Resultset erneut iterieren und das Objekt erneut im Speicher instanziieren.
7) Implementierung eines asynchronen Ansatzes in der Web-API
Die Nutzung eines asynchronen Web-API-Dienstes erhöht die Anzahl der HTTP-Anfragen, die Web-APIs verarbeiten, dramatisch.
Die Implementierung ist einfach: Verwenden Sie einfach das asynchrone Schlüsselwort und ändern Sie den Rückgabe-Werttyp Ihrer Methode zu Task.

8) Gibt mehrere Ergebnismengen und Kombinationen von Mengen zurück
Die Reduzierung der Anzahl der Übertragungen ist nicht nur für mehrere Datenbanken vorteilhaft, sondern auch für Web-APIs, die es ermöglichen, die Leistungsfähigkeit von Ergebnissätzen zu nutzen.
Das bedeutet, dass Sie mehrere Ergebnissätze aus DataReader extrahieren können, siehe folgenden Democode:

Sie können mehrere Objekte in einer einzigen Antwort aus einer Web-API zurückgeben, versuchen Sie, Ihre zurückgegebenen Objekte zu kombinieren und die folgenden Objekte zurückzugeben:

Dadurch werden HTTP-Anfragen an Ihre WEB-API reduziert.
Vielen Dank, dass Sie diesen Artikel gelesen haben.




Vorhergehend:SyntaxError: Missing parentheses in call to print
Nächster:vsftpd, um neue Nutzer hinzuzufügen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com