2009-05-15 9 views
0

Phil Haack氏が提案したAreaViewEngineを使用しているASP.NET MVCアプリケーションを持っています。hereそれはうまく動作しますが、アプリはやや遅く見えるので、私はdotTraceを使っていくつかのプロファイリングを行っていました。私はdevのサーバーにアプリケーションをプッシュし、web.config(デバッグ= "false"のコンパイル)でデバッグフラグをfalseに変更し、プロファイラを起動し、数千のヒットを生成するためにjmeterを使いました。私が見つけた下記のリストされている:VirtualPathProviderViewEngine.FindPartialViewが320秒以上かかったasp.net mvc findpartialview performance

alt text http://i44.tinypic.com/av6e1c.jpg

注意してください。私は根本的なコードが問題の原因となっているかどうかを調べることができませんが、それはhereという問題に関係していると思われます。

ブログでは、リリースモードで実行するとビューパスの解決がキャッシュされると述べていますが、これはそうではないようです(そうであれば、他に何かがFindPartialView機能

任意の考え

編集:。?

私は、問題の原因を見つけることはなかったが、私はリリース1.0のためのMVCのソースコードをダウンロードしてしまったし、それが正常に動作します。インストール可能なバイナリとソース間の矛盾でなければなりませんv1.0用のeコード。私のインストールでは何か問題がありました(問題は複数のマシンに現れましたが)。

答えて

0

RenderPartial()またはView()を使用しているときにパフォーマンスを向上させるためにできることは、そのパスを検索する必要がないようにビューに戻すことです。ファイル名のみを指定する場合は、ファイル名のみであると判断しなければならず、次にフォルダのリストでそのビューを検索します。

+0

はい、理解していますが、リンクした記事を見ると、結果をキャッシュする必要があるため、ビューを検索するために必要な作業は、デバッグがオフになっている場合に1回しか行われません。私が得ようとしているのは、キャッシュが機能していないように見える理由です。バグですか?私は何か間違っているのですか?それは私の質問です。 – Chris