1

ここで 1 つ疑問があります。asp.net MVC Web アプリケーションが 1 つあり、毎晩 IIS からアプリケーション プールをリサイクルしています。翌日最初のリクエストが来ると、応答を得るのに時間がかかっています。

アプリ ドメインがロードされていない (アプリケーションが開始されていない) ため、最初の要求に時間がかかっています。Web アプリケーションを開始するには時間がかかります。

問題は、ジャスト イン タイム コンパイラが再び登場するかどうかです。毎朝、JITで再コンパイルする必要があるということですか?

4

2 に答える 2

2

JITting は、通常、パフォーマンスに大きな影響を与えることはありません。IIS プロセスのコールド スタートアップ、AppDomain の開始、ディスクからのアセンブリの読み込みは、おそらくはるかに大きな影響を与えます。また、アプリケーションの global.asax ファイルにカスタム スタートアップ ロジックが含まれている場合があります (db からの読み込み)。また、データベースも起動する必要がある場合があることを忘れないでください。

于 2010-04-22T20:42:13.867 に答える
2

はい、アプリケーションはリサイクル後に再度 IL から実行可能コードにコンパイルされます。appdomain を破棄すると、JIT されたネイティブ イメージも失われます。

たとえば、頻繁に変更されない依存アセンブリを GAC に配置することでコンパイルの一部を回避し、それらに NGEN を使用できます。これにより、物事が少しスピードアップする可能性があります。

于 2010-04-22T19:42:15.687 に答える