c# を使用して ASP.NET でアプリケーションを開発しました。アプリケーション全体は正常に動作していますが、問題は、アプリケーションを初めて開いたときの実行速度が非常に遅いことです。つまり、ホームページやその他のページのようなページをロードするのに非常に時間がかかります。しかし、そのページを再度開くと、期待どおりにそのページがすぐに開きます。アプリケーションがセッションを取得して期限切れになり、アプリケーションに再ログインするたびに、すべてのページを初めてロードするのに非常に時間がかかります.2回目からそのページを開くことはありません. ここで発生している問題を誰か教えてください。
2 に答える
アプリケーションは最初の要求でコンパイルされます。
Microsoft のこの記事を読んでください。
ASP.NET は最初のユーザー要求で Web サイトをコンパイルするため、アプリケーションのソース コードを運用 Web サーバーにコピーするだけで済みます。ただし、ASP.NET には、Web サイトを配置する前にコンパイルしたり、配置した後でユーザーが要求する前にコンパイルしたりできるプリコンパイル オプションも用意されています。プリコンパイルにはいくつかの利点があります。ASP.NET がサイトをコンパイルする間に遅延時間が発生しないため、最初の要求で Web サイトのパフォーマンスを向上させることができます。プリコンパイルは、ユーザーがページを要求したときにしか見つからないエラーを見つけるのにも役立ちます。最後に、配置する前に Web サイトをプリコンパイルすると、ソース コードの代わりにアセンブリを配置できます。
ASP.NET コンパイラ ツール (ASPNET_Compiler.exe) を使用して Web サイトをプリコンパイルできます。次のプリコンパイル オプションを提供するツール:
- インプレース コンパイル このオプションは、動的コンパイル中に発生するのと同じコンパイルを実行します。このオプションを使用して、運用サーバーに既に展開されている Web サイトをコンパイルします。
- 更新不可のフル プリコンパイル これを使用してアプリケーションをコンパイルし、コンパイル済みの出力を運用サーバーにコピーします。すべてのアプリケーション コード、マークアップ、および UI コードがアセンブリにコンパイルされます。.aspx ページなどのプレースホルダー ファイルは引き続き存在するため、アクセス許可の構成などのファイル固有のタスクを実行できますが、ファイルには更新可能なコードは含まれていません。ページまたはコードを更新するには、Web サイトを再度プリコンパイルして、再度展開する必要があります。
- 更新可能なプリコンパイル これは、.aspx ページや .ascx コントロールなどの UI 要素がすべてのマークアップ、UI コード、およびインライン コード (存在する場合) を保持することを除いて、更新不可能な完全なプリコンパイルに似ています。展開後にファイル内のコードを更新できます。ASP.NET はファイルへの変更を検出し、再コンパイルします。コード ビハインド ファイル (.vb または .cs ファイル) のコードは、プリコンパイル中にアセンブリに組み込まれるため、プリコンパイルと配置の手順を再度実行しないと変更できないことに注意してください。
ただし、セッションの有効期限が切れた場合も遅いと述べました。セッション開始時にメモリにロードしすぎている可能性があります。それ以上の情報なしに診断を下すことは困難です。
.net タブの firebug でサイトを確認すると、ページのどの部分の読み込みに時間がかかるかがわかります。クライアント側の言語にいくつかの例外やコード エラーがある可能性があります。セッションの使用を減らし、コードをデバッグして、余分なコードのループがないことを明確にしてください (下手な英語で申し訳ありませんが、私の主張を理解していただければ幸いです)。