訪問者数分析
- 概 要
perlモジュール「GD::Graph」を使った実例です。昔作ったイメージ出力型の「セッション管理昨日今日カウンタ」が出力するログを読んで集計して、 グラフ化するCGIを作ってみました。画面下のほうにあるフォームで、 年と月を選んでボタンを押すと1ヶ月の人数推移をグラフ表示します。 最近はほんとに色々なAgentがあるようで。。出来る限り網羅したつもりです。訪問者が増えてくれないと意味有りませんが。
Plack::APP::CGIBinを使用してこのグラフ表示CGIをそのままPSGIプログラムとして起動した場合と、そうでない場合を比較できるようにしました。黄色のボタンを押すとPlack::APP::CGIBinベース、水色のボタンが通常のCGIです。簡易的な測定だとグラフの表示速度は1.7倍ぐらいです。 解説記事はこちら
さらにPlack::APP::CGIBinではなく、フレームワークとしてCGI::PSGI(CGI.pmベースのラップミドル)を使用し、Plack::Builderを用いてマルチアプリケーションのフレームワークも作ってみました。3つのパターンでの棒グラフ表示速度をWireSharkで測定した結果は下記。http OKレスポンスパケットの時刻からGETリクエストパケットの時刻を単純に引いた時間です。 (1)Plack::APP::CGIBinベース ---- 1.11063秒 (2)CGI::PSGIベース ------------- 1.05934秒 (3)CGI.pmベース ---------------- 2.16949秒 (3)はアプリケーションがメモリ常駐していないのですから遅いのは当たり前として、(2)が(1)より70msほど速いのは予想以上でした。非力なサーバー環境なので顕著に出たとも考えられます。
- Agent毎の月別訪問者数グラフ