私は最近、光り輝く新しいVPSにASP.NETアプリケーションを配備しました.VPSが共有ホスティングソリューションに与える一般的なパフォーマンスの向上に満足していますが、私はアプリケーションの起動時間に不満です。私のASP.NETアプリケーションを常に "生きている"ように保つ方法は、悪い考えなら、どうしたらいいのですか?
クライアントが最初にヒットすると、Webアプリケーションの起動にかなりの時間がかかります。私はデバッグモードで実行していません(私のweb.configで無効にしています)。起動時に実際に作業する必要はありません。アプリケーションの開始イベントハンドラにコードはありません。余分なスレッド、何も。私のクライアントが初めてアプリケーションに当たると、応答に15〜20秒かかることがあります。私のアプリケーションがシャットダウンするのを数分待たない限り、その後の呼び出しには1〜2秒かかります。その後、15-20秒の起動時間に戻ります。
(私のタイミングベンチマークは非常に非科学的であることを認識しています。これらの数値は、私のアプリの起動時のパフォーマンスを感じるだけのものです)。
私は、IIS(この場合は7.0)が初めて実行されたときにWebアプリケーションをコンパイルしてから、Webアプリケーションが変更されるまでこれらのバイナリをキャッシュすることを理解しました。私の理解は間違っていますか?
だから、その本のサイズの序文の後、ここに私の質問は以下のとおりです。
- は、ASP.NETのコンパイルの私の理解が間違っていますか?それは実際にどのように機能しますか?
- IISにバイナリをキャッシュさせる方法や、アプリケーションを無期限に保存する方法はありますか?
- 私の前の質問でどちらかのことをするのは悪い考えですが、それはなぜ悪い考えですか?代わりにスタートアップのパフォーマンスを向上させるにはどうすればよいですか?
ありがとう!
編集:私の質問はthis questionの少し重複しているようです(私はここでこれに対する答えを探しています。しかし、私の質問はより包括的であり、これに対処するためのより良い、既に尋ねられている質問がない限り、重複していないと感謝します。
他の似たような質問の回答者が提案したのとまったく同じアプローチを提案するつもりでした。あなたは、その質問に対する回答があなたのニーズを満たしていないと確信していますか?私は彼らが状況をかなりうまく説明していると思う。 – DOK
@DOK、あなたのフィードバックのおかげで、他の質問は私の質問の「方法」までは良いものでしたが、私の質問はこの問題の「なぜ」とベストプラクティスの詳細をカバーしていると思います。 –
私はSO上で使用される検索アルゴリズムが本当に悪いと思うので、重複しています。 –