Personal tools
You are here: Home ブログ 井上 時間のかかる処理はFirebugでどう観測されるか?
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

時間のかかる処理はFirebugでどう観測されるか?

発端は、firebugのNetタブで見ることができるグラフは、ネットワーク待ち時間を含んでいるかという疑問です。調べればどこかに書いてありそう(or JavaScriptコード読んでも分かりそう)ですが、実験した方が早いので、やってみました。

apacheはapache2.2.0です。

まず次のようなCGIスクリプトで、時間のかかる処理をエミュレーションしてみました。

#!/usr/bin/perl
sleep 10;
print "Content-Type: text/html\n\n";
print "<html><title>t</title><body><img src=\"/img/apache_pb.png\"><img src=\"/img/apache_pb.gif\"></body></html>";

sleepの秒数を変えても、firebugの結果は常に次のような表示になりました。

/Members/inoue/images/misc/fb-net1.png

実際にはネットワーク待ち時間が10秒ありますが、firebugのグラフに10秒は現れません。

次のようにCGIスクリプトを変えてみました。

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
$| = 1;  # non-buffering
print "<html><title>t</title><body><img src=\"/img/apache_pb.png\">";
sleep 10;
print "<img src=\"/img/apache_pb.gif\"></body></html>";

この結果は次のようになりました。

/Members/inoue/images/misc/fb-net2.png

10秒のネットワーク待ち時間がグラフに現れました。

この実験で、firebugのNetタグのグラフは、HTTPレスポンスを受け始めてからの時間を表示していることが分かります(リクエストを投げてから、レスポンスを受け始めるまでの待ち時間は含みません)。計測のエンドが、レスポンスを受け終わるまでか、画像であればレンダリングするまでなのか、JavaScriptであれば解釈するまでなのか、の区別は、この実験では判断できません。おそらく、レスポンスを受け終わるまでの時間な気がします(Netタブなので、純粋にデータ転送時間を出すのが自然に思えます)。確証はないので、裏を取りたければ、ほぼ同じサイズのHTMLファイルと(解釈に時間のかかりそうな)JavaScriptファイルで比較すれば判断できるでしょう。

上の実験から、結局、リクエスト開始からレスポンス終了までの時間を知るには、firebugのNetタブは適していないことが分かります。

計測の目的がネットワークの遅延ではなく、サーバ側の処理時間であれば、Apacheのログを見るのが確実です。

LogFormat(http://httpd.apache.org/docs/2.2/en/mod/mod_log_config.html)で%D(マイクロ秒)、%T(秒)のいずれかでログにでます。このふたつ、単位が違うだけで、まったく同じ算出です。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/firebug-net/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.