いくつかの大規模なソリューションがあり、それぞれに約 40 の個別のプロジェクト (クラス ライブラリとネストされた Web サイト) があります。すべてを完全に再構築するには、約 2 分かかります。
システム上のいくつかの仕様:
- Visual Studio 2005、C#
- プライマリ プロジェクトは Web アプリケーション プロジェクトです
- 合計 40 プロジェクト (4 Web プロジェクト)
- 内部VS Webサーバーを使用します
- テキストボックスを含むユーザーコントロールに至るまで、ユーザーコントロールを幅広く使用しています
- 部分的な展開を可能にするインライン Web プロジェクトがいくつかあります。
- 約 120 のユーザー コントロール
- 約 200.000 行のコード (HTML を含む)
- ソースセーフを使用しています
私が知りたいのは、ブラウザで初めてサイトにアクセスするときにかかる時間を短縮する方法です。そして、完全な展開後のことについて話しているのではなく、コード、ビルド、ブラウザーの更新に小さな変更を加えることについて話しているのです。
この最初のヒットは、データが返されるまでに約 1 分 15 秒かかります。
速度を上げるために、Ram ディスクを少し試してみました。具体的には、web.config の <compilation> 属性を変更し、tempDirectory を Ram ディスクに設定しました。これにより、処理が少し速くなります。興味深いことに、これにより、ブラウザーからの最初のヒット時にすべての IO アクセスが完全に削除されました。
備考
開発中に完全なコンパイルを行うことはなく、部分的なコンパイルのみを行います。たとえば、作業中のクラス ライブラリがコンパイルされ、次にメイン サイトがコンパイルされ、バイナリがクラス ライブラリから bin ディレクトリにコピーされます。
重要なファイルが変更された後、asp.net エンジンがすべての ascx/aspx ファイルを解析する必要があることは理解しています (bin dir など)。変更されました。
したがって、誰もが次のいずれかの方法を知っています。ソリューションをサブセグメント化して、最初のヒットを高速化するか、構成ファイルなどで設定を微調整します。
繰り返しになりますが、私は開発についてのみ話しているのであって、本番環境への展開については話していないので、ビルド済みのコンパイル オプションを実行することは適用されません。
ありがとう、ルヴァン