2016-06-16 23 views
2

サービスクラスと通信するWeb API 2エンドポイントがあります。 サービスクラスは、私は非同期を適用したEntity Frameworkの(V6)非同期で使用量とオーバーヘッドが発生する

への呼び出しは、(SaveChangesAsyncを使用して...などを照会し、イムは、データベースへの書き込み方法に待っています)、など

私の質問はに関するさオーバーヘッド..

実際には、サービスのメソッドシグネチャに非同期を適用する必要があります。つまり、コンパイルするには、呼び出しメソッドでawaitとasyncを適用する必要があります。

サービスメソッドを呼び出すメソッドが非同期に振り回されるという事実があります - この結果、余分なオーバーヘッドが発生しますか?すなわち:私のweb api 2エンドポイントは、非同期&タスクが署名に適用されているこのサービスメソッドを呼び出すときに非同期待機が適用されました。私はについて話

オーバーヘッドは、この記事 https://www.simple-talk.com/dotnet/.net-framework/the-overhead-of-asyncawait-in-net-4.5/

+1

これを知る唯一の方法は、測定することです。非同期/待機なしのエンドポイントのコピーを用意し、負荷テストを行います。次に、async/awaitを使用してエンドポイントで同じ負荷テストを実行します...また、単語は「私」ではなく「イム」です。 –

+1

私はその記事があなたがここにいる可能性が高いよりもあなたの質問によく答えると思います。 – Crowcoder

+0

システム上のオーバーヘッドの量と、そのオーバーヘッドが許容できるかどうかを判断することができます。 – Servy

答えて

0

に関連していることは、はい、いくつかのオーバーヘッドになります。通常、それは問題ではありません。毎秒100万分の1秒未満の作業を期待するなら、私はこれについて全く考えません。

"async all way"を使用する最大のコストは、多くのコードに感染し、コードの品質に影響を与えることです。エラーが発生しやすくなるため、開発コストが増加し、ソフトウェアの品質が低下する可能性があります。