2011-01-19 8 views
1

を...スピードアップWebアプリケーションのコンパイル

を持っています、 (カタログを変更したり、ページビューを監視するなど)、およびその他の基本ページを顧客のフロントエンドに表示することができます。

ローカルマシンでアプリケーションをコンパイルして実行すると、かなり速くコンパイルされ、非常に高速に実行されるようです。しかし、サーバーにデプロイされると、最初のページの読み込み(ページの種類、スタイルシート/ JSファイルの数、イメージの数、ページマークアップの大きさ、そう)。この後、すべてのページが本当に速く読み込まれます。私の推測では、これは最初からコードをロードする必要があるためです。その後、リサイクルされるまで、アプリケーションは完全に高速で実行されます。誰も私がアプリケーションのこの部分をどのようにスピードアップできるか考えている人はいますか?私は恐らく、ダイヤルアップ速度よりも遅い私のような遅い接続では、十分に速く読み込まれていないため、決してそのサイトを返すことができない恐れがあります。どんな助けでも大歓迎です。

ありがとうございます。

よろしく、

リチャード

PSあなたが私の他の質問のいくつかを参照する場合は、このようなデータのほとんどは上のオブジェクトにロードされていることを事実として、システムについてもう少しを見つけるでしょう最初のページの読み込み - 私はこれをゆっくりとソートしていますが、その違いを大きくしているようには見えません。代わりにLinq-to-SQLの使用を検討しましたが、私の知る限り、柔軟性はあまりありません。 Linq-to-SQLの制限内で作業するのではなく、独自のシステムアーキテクチャーを定義して、会社固有のものにしたいと思います。

+0

ウェブアプリケーションですか、Webサイトですか?それはプリコンパイルされていますか?どのくらい正確に "永遠と一日"ですか? – bzlm

+0

これはVisual Web Developerに設定されたWebアプリケーションです。ライブやテスト環境に送る前に、私はいつも自分のアプリケーションをコンパイルします。永遠に、1日の範囲は約5秒から10または15秒です。それは大幅に変化するようです。つまり、同じサーバー上に大量のサイトがあると、時間の影響を受けやすくなる可能性がありますが、いつでも速くはないようです。 – ClarkeyBoy

+0

私が持っている質問は、アップデートを投稿した後、最初のユーザーがページを表示し、顧客のために「弾を噛む」のはなぜですか? –

答えて

0

可能な場合は、最も簡単に簡単な解決策は、一定期間使用しないとリサイクルしないようにAppDomainを構成することです。これはIIS 6 & IIS 7で異なります。

もう1つの方法は、サイトから4分ごとにページを要求し、すべてのコンピュータ上にスケジュールされたタスクとしてセットアップする小さなユーティリティプログラムを作成する方法です時間。少なくとも、タイムアウトとそれに伴うAppDomainのリサイクルが起こらないようにする必要があります。確かにハックですが、時には解決策がない場合もあります。

ただし、適切な解決策はprecompile your viewsです。どの程度正確に達成し、展開するかは、WebサイトのVisual Studioプロジェクトの正確なタイプに依存します。

+0

ありがとうございますqstarin。私はこれを調査しますが、私の質問にコメントしたように、私はコントロールできません私はセッションタイムアウトが1時間に設定されているが、まだ5分かかっていないユーザー(幸いにも唯一の管理者)がログアウトされていることを意味しています。設定ファイルまたはコントロールパネル – ClarkeyBoy

+0

IIS管理コンソールへのアクセス権がありますか?共有ホストによっては許可されているものもあります。例えば、サーバー上にあるかのように管理スナップインを使用できるリモートIIS管理機能をArvixeが提供していますそれは管理ツールから引き上げます。これはIIS管理にあり、web.configではなく、そのオプションを変更することができます。そうしないと、ビューをあらかじめコンパイルする必要があります。プロジェクトをコンパイルしても、まだデフォルトでコンパイルされています必要に応じて、それが遅延が発生する場所です。 –

+0

私はIISにアクセスできないと思います。私は、必要に応じてアプリケーションをリサイクルしたり、インターフェイスを介してweb.configを変更するなど、基本を意味します。しかし、より高度な機能私はアクセス権がありません。それを言いましたが、明日はホスト(Intrahost)に連絡して、彼らが私のためにそれを変更できるかどうか、または私が見逃したことにアクセスできる何らかの方法があるかどうかを調べる価値があります。 – ClarkeyBoy