Async vs Sync Benchmarks auf MVC Controller mit Fragen

9

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.

Serverkonfiguration:

  • Windows 7 Professional (x64)
  • IIS 7.5
  • Intel Core i7-2600S @ 2.80HGz
  • 8GB Speicher
  • AppPool & gt; Maximale Arbeitsprozesse: 10

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:

SYNC:

%Vor%

ASYNC:

%Vor%

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:

%Vor%

Auch andere Vorschläge zur Beschleunigung einer Anwendung, die diese Art von Tasts ausführt, werden sehr hilfreich sein.

    
Control Freak 03.10.2014, 18:00
quelle

1 Antwort

1

Ich denke, der Hinweis ist in deinem Vergleich

%Vor%

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?

    
Tuan 11.10.2014 10:04
quelle