2

URL生成の微調整を含むいくつかの手法を使用して、ASP.NET MVCアプリケーションを最適化しようとしています: http://www.chadmoran.com/blog/2009/4/23/optimizing-url-generation-in-aspnet- mvc-part-2.html

匿名クラスの代わりに RouteValueDictionary を使用した場合の速度差が非常に大きい場合、html 属性を定義するときに匿名クラスの代わりに Dictionary を使用することも検討する必要がありますか?

たとえば、これを行う必要があります。

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new { @class = "someCSSClass" })

または、これを行うことでさらに最適化する必要があります:

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new Dictionary<string, object> { { "class", "someCSSClass" } })

Url.Action を使用するか、RouteLink 手法を使用する方がさらに高速であることはわかっていますが、速度のために匿名クラスを完全に回避する必要があるかどうかは疑問です。

4

1 に答える 1

5

はい、辞書を使用する方が高速です。

違いを生むのに十分な速さですか?あなたのアプリケーションについて、プロファイラーだけがそれを伝えることができます。実際に違いがある場合は、とにかくビューの結果をキャッシュすることをお勧めします。

ただし、強力な型付けによりActionLink . を渡すと、間違ったオーバーロードが発生しやすくなりobjectます速度は単なるボーナスです。

于 2010-02-17T19:00:16.633 に答える