2009-06-24 11 views
4

私はjsonフォーマットのデータをjQuery.ajaxを使ってリクエストするウィジェットに提供するasp.net webserviceアプリケーションを開発しています。私は、FireBug Netビューを使用して、データの要求がどれくらい時間がかかるかを確認してきました。単純なファイル要求と比較して、Webサービス要求に対してどのような応答時間オーバーヘッドが予想されますか?

私の最初のプロトタイプでは、スタンドアロンのjsonデータファイルを要求していましたが、ブラウザのキャッシュに存在しないにしても、私の開発マシンではIISによって非常に迅速に返されました。

私はウェブサービスに接続しました。データリクエストが遅すぎると懸念しています。返すために一貫して約200msかかるためです。 (これは、obviosuly物事をコンパイルし、約6秒間を取っている最初の要求の後でもあります。)私はすべてのデータベース/処理オーバーヘッドをWebリクエストから削除したので、処理するのに少し時間がかかるでしょう。ローカルのdevマシンは、ネットワークの待ち時間がないので。オーバーヘッドは、リリースビルドやプロダクションサーバーではそれほど良くありません。

は、私の質問はこれです:

は、私は単に「Hello Worldの」を返す.NET Webサービスから期待できるの周りに200msの最高のこの応答時間ですか?もっとうまくいくことができれば、私は間違って何をしているのでしょうか?それができない場合は、代わりに何をしますか?

答えて

3

データベースなどへの接続に関して実際に何もしていない場合は、200msという非常に優れた応答時間を得ることができます。

クライアント側ではなくサーバー側で時間を測定すると、何が表示されますか? WireSharkを使ってネットワークの状況を確認しようとしましたか?

タイムラインをできるだけ正確に作成し、クライアントがリクエストを送信した時刻、リクエストがサーバーに到達した時刻、サーバー側のコードがリクエストを受信した時刻、サーバー側のコードサーバが実際にレスポンスを送信したとき、およびクライアントが実際にレスポンスを受信したときに、処理を完了しました。

その時点で、ボトルネックがどこにあるのか分かります。

+0

WireSharkのヒントをいただきありがとうございます。以前はこれを使用していません。これは、サーバーとレスポンスの間に要求が到着するまでの時間を示しています。その応答時間は170msです。これは間違いなく最大の部分です。 私のウェブサーバーコードは何の処理も行っておらず、文字列パラメータを直接クライアントに返すだけです。 –

+2

Hmm。それは良いことではありません。あなたはプロセスの中にもう少しログを記録することができるかもしれませんので、残りの時間がどこにあるのかを見ることができます。 ASP.NET以外のWebサービス呼び出し(カスタムハンドラなど)を行うとどうなりますか? –

+0

私はちょうどカスタムハンドラコールを試みました - そしてそれはちょうど同じ遅さです。ああ... 私の代わりの解決策は、データを書き込んでいるWebサービス呼び出しが実際にjsonファイルをディスクに書き込んで後で処理する方法です。 (サイトには書き込みよりも多くの読み込みがあります) あなたは私の質問の主要な部分に答えました。これはこれより速いはずです。 –

関連する問題