Ich habe die Beispiele aus diesem MSDN-Artikel Verwenden von asynchronen Methoden in ASP.NET MVC 4 und habe einige Benchmarks durchgeführt, um zu sehen, was ich daraus mache.
Ich habe 2 Controller Sync
und Async
eingerichtet und einige Tests mit einem Loader Tool zum Benchmarking durchgeführt. Das Ladeprogramm sendet nur 50-60 konstante Anfragen für eine Minute. Jeder Controller ruft den gleichen Webservice dreimal an. Der Code für jeden ist unten:
Erste Frage, weiß jemand, warum Async länger dauert, weniger läuft und Timeouts verursacht, während Sync-Version nicht ist? Ich würde denken, dass die Verwendung von Async dafür schneller wäre, keine Timeouts usw. Scheint einfach nicht richtig, mache ich hier etwas falsch? Was kann getan werden, um es zu verbessern / zu beheben?
Zweite Frage, WebRequests allgemein verwenden, gibt es eine Möglichkeit, dies zu beschleunigen? Ich habe Folgendes in meinem global.asax
festgelegt, bin aber immer noch unsicher, ob die Verwendung korrekt ist:
Auch andere Vorschläge zur Beschleunigung einer Anwendung, die diese Art von Tasts ausführt, werden sehr hilfreich sein.
bis
%Vor%vielleicht können Sie
versuchen %Vor%und Sie könnten Ihren asynchronen Code auf
optimieren %Vor%Es ist ausreichend, hier einen asynchronen Fließpunkt zu haben.
Details zu async finden Sie in dieser Antwort: Müssen Sie Task.Run in eine Methode einfügen, um es asynchron zu machen?
Tags und Links asp.net-mvc c# asp.net asynchronous asp.net-mvc-4