1

同じパラメーターを使用して別のテストを実行するためにページを更新するときに、Webサービスのプロセスの時間を調べるために、ストップウォッチの開始と停止を使用しています。2番目を除くすべてのテストと他のすべてのテスト異なる結果を取り戻します。しかし、IISサーバーを再起動すると、最初の結果が再び表示されます。

だから私の質問は、なぜ私が最初に時間内に異なる結果を受け取るのですか?

ちなみに私はC#でWebサービスを作成しました。

4

1 に答える 1

3

初めてそれがはるかに遅い理由を理解するために、最初に何が起こらなければならないかを考えてください:

  1. アセンブリはディスクからロードする必要があります。
  2. コードは変更されます。つまり、ILからマシンコードに変換する必要があります。
  3. ページ(.cshtml / .aspx)を解析する必要があります。解析されると、コンパイルされた表現はメモリに保存され、後続の要求ですぐに利用できます。

一般的に言って、ページを2回目にロードするときに、そのいずれも発生する必要はありません。最初に発生してからキャッシュされることは、他にも無数にある可能性があります。これが、その後の更新が通常はるかに高速になる理由です。

于 2012-10-04T22:22:07.337 に答える