1

私はアプリケーションを構築しています。それをデプロイした後、インターネットで入手できるいくつかのツールでテストしました。そのうちの 1 つはhttp://developers.google.com/speed/pagespeed/insights/です。

テスト後、サーバーの応答が非常に遅いとのことでした。ホームページを開いたときに、ページを開くのに時間がかかることに気付きました。

ここに私のインデックスメソッドがあります:

public ActionResult Index()
    {
        IndexModel indexModel = new IndexModel();

        indexModel.news = db.News.ToList().OrderByDescending(News => News.Date);
        indexModel.paper = db.Papers.ToList().OrderByDescending(Paper => Paper.Date);

        return View(indexModel);
    }

これを非同期メソッドにしたい。それはそれを速くしますか?それとも他の解決策がありますか?

4

2 に答える 2

0

はい、非同期は並行して実行できるタスクであるため、これを高速化します。ただし、両方の呼び出しを使用する 1 つの非同期メソッドだけでなく、レコードを非同期にするために各呼び出しを行う必要があります。ただし、この場合、同じデータ ソース (つまりデータベース) から と の両方にアクセスしていると想定しているためNewsPaperデータベース サーバーに負荷をかけているため、どの程度の利益が得られるかは定かではありません。

MSDN で非同期プログラミングについて読むことから始めることをお勧めします。

ただし、mattytommo が述べているように、クエリは必ず制限する必要があります。そうしないと、意図的に (および意図せずに Google ボットなどによって) DoS 攻撃を受ける可能性があります。

于 2013-08-27T09:37:17.690 に答える