Wann sollten asynchrone Controller in ASP.NET MVC verwendet werden?
Asynchrone Aktionen in ASP.NET MVC können durch die Entlastung Leistungsvorteile bieten Threads, insbesondere bei Serveranwendungen, bei denen die Skalierung im Vordergrund steht. Es ist jedoch wichtig zu verstehen, wann die Verwendung asynchroner Aktionen angemessen ist und welche möglichen Einschränkungen bestehen.
Leistungsüberlegungen
Asynchrone Aktionen werden nicht:
Geeignete Szenarien
Es wird empfohlen, bei der Durchführung von E/A-Vorgängen asynchrone Aktionen zu verwenden Sie ermöglichen die Freigabe des Anforderungsthreads, während E/A-Aufgaben im Hintergrund ausgeführt werden. Von der Verwendung von asynchronen Methoden für CPU-gebundene Methoden wird jedoch abgeraten.
Datenbankabfragen
Sie können von Ihrem ORM bereitgestellte abwartbare Methoden verwenden, um die Datenbank asynchron abzufragen. Beachten Sie jedoch, dass asynchrone Abfragen möglicherweise nicht in allen Szenarien Skalierbarkeitsvorteile bieten. Wenn das Datenbank-Backend skalierbar ist und IIS den Skalierbarkeitsengpass darstellt, können asynchrone Abfragen die Leistung verbessern.
Mehrere wartende Schlüsselwörter
Sie können das Schlüsselwort „await“ mehrmals verwenden eine einzelne Aktionsmethode zum Ausführen mehrerer asynchroner Vorgänge. Es ist jedoch wichtig, ORM-Einschränkungen zu berücksichtigen, wie z. B. die EF-Regel „Ein Vorgang pro Verbindung“.
Überlegungen zur Skalierbarkeit
Asynchrone Aktionen können zwar Threads freigeben, sie sind jedoch nicht in der Lage, Threads freizugeben Verbessern Sie nicht direkt die Bearbeitungszeiten von Anfragen. Darüber hinaus können sie die Arbeitslast Ihrer Datenbank erhöhen, wenn das Backend bereits mit voller Kapazität arbeitet. Daher ist es wichtig, die Skalierbarkeit Ihres Datenbank-Backends und die möglichen Auswirkungen asynchroner Abfragen auf seine Leistung zu bewerten.
Das obige ist der detaillierte Inhalt vonWann sollten Sie Async-Controller in ASP.NET MVC für optimale Leistung verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!