efStat改修履歴
アクセス解析パッケージ - efStat

■ToDo

  • プログラムを二重起動できないように排他処理を加える
  • 英語版も用意したい
  • ダサいと好評の配色をモノトーン系に変える
  • 設定を別ファイルに分離・Webからの修正
  • ソースの書き直し
    オブジェクト指向の完遂は無理でも、それに近づこう!?
    • ハッシュのハッシュなどを使ってデータを体系的にまとめる
    • 変数の局所化・処理の局所化・機能別にパッケージを分けることを徹底する

2001/09/21 2.1.3
  • クッキーにセットしたパスワードの欄が反映されないのを修正
  • クッキーにセットしたリンク許可・設定情報保持の欄が反映されないのを修正
  • 文字コードをEUCからS-JISに戻す(不評の為)
  • カウント集計の項目が少し気の利いたものになった
  • カウント集計に縦棒グラフを付けた
  • ファイルオープン時、読み込みロックを掛けるようにした
  • gTLDにbiz,info,name,pro,museum,aero,coopを追加
  • ccTLDにps(パレスチナ自治政府)を追加
  • 検索エンジンの対応数を微妙に増やした&修正
2001/01/12 2.1.2 修正
  • ブラウザ統計の注釈が表示されなくなっていたのを修正
  • 年度別集計が出力されていなかったのを修正 (…というより、今の今まで忘れていた)
  • 小メニューにおいて、画面情報系が出力されていなかったのを修正
  • いくつかの無害なtypoを修正
  • 小メニューを単色に統一
保守
  • 参照元、InfoNaviとInfoWebをちゃんと区別するように
  • OS識別の優先順位を変更
    私のページだけなのかも知れませんが、今やWin95よりもWin2000の方が普及しているみたいです。
  • Navigator の識別を強化
  • "CacheFlow"というAgentに対応。
2001/01/09 2.1.1 ログ一括表示モードにおいて、生ログの表示件数の指定が反映されなくなっていたのを修正 (2.1で発生)
2001/01/04 2.1 自分の中ではこれで完成です。
当面、解析機能自体の機能追加は無いでしょう。
今回は自分自身が(リファレンス || Perl)の勉強をするために弄りました。
無理矢理こじつけて完成させたので、ソースを見て笑わないで下さいね。
  • 文字コードをEUCに変更
    (初心者への敷居が更に高くなりましたが、サーチエンジン分析などの精度が向上したはずです)
  • 参照元統計を強化
    • 任意のURLをまとめ上げる機能を追加
  • サーチエンジン分析を強化
    • TINAMIのCharlotte(画像検索ページ)に対応
    • Yahooカテゴリに対応?(自分がYahooに入ってる訳ではないので成功したかは不明)
    • 仕分けルーチンの最適化
  • OS統計を強化
    • AOL版とMSN版のIEに限り、これも統計の対象となるように変更
    • Windows 3.1に対応させた
  • ブラウザ統計を強化
    • NetCaptorに対応させた(自分が使っている故の贔屓という説もある:-)
      Cuamなんかも多分イケるんじゃないだろうか…?(RFCへの対応を望む…)
  • ホスト仕分け処理を最適化
    • ついでにgTLD/ccTLDテーブルを強化
      (国コードはISO3166で規定されているそうですね。もう一度ちゃんと調べてみなければ)
  • 各種変換テーブルを別ファイルに分離した
    (これで、普通の人もメンテナンスしやすくなったかな?)
  • フォント指定をスタイルシートで行うようにした
    (俄然、HTML信者が読むと死にたくなるようなHTMLソースだが)
2000/11/14 2.0.2
  • 参照元へのリンクを無効にすると生ログで参照元が表示されなくなってしまう問題を修正
2000/11/12 2.0.1 パッチ当て。
  • 解析範囲を限定した場合に時間帯別集計がおかしくなるのを修正
  • Windows2000 + IE がOS統計から外れていたのを修正
  • 色数を bit で表現するのみにした
    (ちゃんと計算すると桁あふれの危険があるため)
  • 何かともめ事の多いイタズラ対策(外部から実行不可にする)を潰す
2000/11/02 2.0
  • 新ログ形式に対応した(efCount Ver.2.0形式)
    • 62進数に対応
    • 年度別集計を追加
    • 画面解像度・色数統計を追加
  • ログから { 全て | 本日 | 昨日 } の分を抜き出して分析できるようになった。
    (アクセスの多いページでは、相応にログを大きくしないと意味がないと思う)
  • 自サイトURLを複数指定できるようにした
    (サイトが複数に分散されている時も「サイト内移動分析」が対応できるようになる)
  • パスワード制限できるようになった
  • TINAMIのカテゴリ更新に対応した
  • カウント値が6桁以上だと正常に表示されないバグを直した
  • ハッシュや型グロブ(Cで言うポインタ?)を利用できる局面(関数への引数渡しなど)では必ず使い、無駄な配列コピーを減らした
    (処理速度が20%程高速化した。 まだ削れるような気がする)
2000/06/17 1.2
  • ブラウザ分析の挙動を変更。 (いい加減RFC読んで勉強せんとな〜)
    • エージェント名の振り分けを強化(現時点で最適のハズ)
    • 純正IEと純正NNしかOSの統計は取らないようにする
    • OS統計にて、UNIX系も細かく分類するようにした(対象はX上のNetscapeのみ)
    • Windows2000も統計に入れる(Win2000+IE使用時のみ)
  • 細かい見てくれを修正
  • CPU使用時間を表示(あくまでおまけ)
2000/05/17 1.1 自分のサイト内のお客さんの移動も表示できるようにした。(サイト内移動分析)
結構外人さんの来客率も馬鹿にならんカモ…?と米国ドメイン統計を追加。
グラフと数値の項目を結合。タグが圧縮されて、少しは表示が早くなるかと。
割合が同じ(同着)分については割合の表示を省略させるようにした。
月別ランキングでうっかり先月分を表示していたのを修正。
暫定的にNetscape Navigator6に対応。(シェアの表では5.0と表示されます)
2000/04/05 1.0c 色々と揉めそうなので、NPHスクリプト形式をやめる。
恐らくこれでMacやネスケでも問題なく表示できるようになります。
サーチエンジンリストにTINAMI,MSN,jplaza(fresheyeミラー?)を追加・修正。
2000/03/11 1.0b 環境変数TZを修正する処理を追加。(海外サーバ用)
2000/02/19 1.0a PERL4だと無限ループに陥るバグを修正
エラー処理を強化
2000/02/19 1.0 プログラム名称をWebstatからefStatに変更。 version表記も整理。
プログラムを一から作り直した。 大まかな改善テーマは以下の通り。
  • 他人が読みやすいソースを心がける
    (変数(配列)名の体系化、関数の一本化、機能別にソースを分割)
  • ログをメモリに読み込まず、解析結果のみをメモリに展開する
    (ログを上から下まで読みとったら解析結果が出来ている)
  • 配列間のコピーを極力しない
  • 配列を操作(copy,sort等)する前に不要な情報は削ぎ落とす
  • 不要になった(連想)配列は逐次削除する
  • 不要になった変換テーブルは逐次削除する
  • 多機能な非汎用関数を用意し、処理の一本化(汎用化)を進める
  • コード変換ロジックの最適化
以上の結果、大きな性能改善に繋がった。
以下、1500行のログを解析した場合の time コマンドでの計測結果。
> time ./webstat.cgi > test.html
15.742u 0.062s 0:15.83 99.8% 538+2227k 0+2io 0pf+0w
> time ./fstat.cgi > test.html
1.350u 0.062s 0:01.42 99.2% 544+1627k 0+1io 0pf+0w
NPHスクリプト形式に変更
処理メニュー(ログ複数表示モード)を用意した
Webstat互換モード(ログ単体表示モード)を用意した

■いにしえのWebstat時代

1999/12/21 1.6.1 表示の指定を<BODY>タグ一つで一気に出来るようにした
jcode.plの存在チェックをやるようにした
エラーメッセージを少しだけ親切にした
TINAMIの検索ワードも統計取れるようにした
カウント値が0の時、0除算エラーが出てログが完全に表示されないバグを修正
(なんでこんなのが今まで見つからなかったんだ…(^_^;)
1999/08/20 1.6.0 [Surfers Paradice分析機能]を追加。
ブラウザ判別を強化。
リモートホストの取得をefCountにやらせる事にした。
(ログの溜め込み過ぎによるタイムアウトを回避するため)
参照元を生のままで保存することにした(以前はindex.htmlとかを消してた)
1999/07/04 1.5.1 環境変数TZを修正するのを忘れてました。 これで外国サーバでも使えます。
? 1.5.0 ある意味バージョンダウン(^^;
1.5.0αのバグ修正。
? 1.5.0β 機能追加(複数ログの同時読み込み)しようとしたけどプログラムがスパゲッティになって、自分でも訳が分からなくなったので一時中断(--;
そろそろ仕様をちゃんと決めてからでないとデタラメに弄れない規模になったと悟る。
? 1.5.0α メニューを追加。
? 1.4.3 生ログの表示方法を変える。 異議あれば言って下さい。
テイストレスモードを追加
? 1.4.2 TINAMIカテゴリ・ホスト名・ブラウザ名変換処理を修正
表の足切り機能を付ける
定型処理を出来るだけ関数・マクロにしてプログラムサイズ縮小
無駄なタグを極力取り除き、表示がかなり高速化したはず
? 1.4.1 TINAMIから人が来ていない場合はTINAMI分析を表示しないようにした
fcount.cgiに対応。 - noscript処理追加
? 1.4.0 [国籍分析]に現在公開されている国情報(第一レベルドメイン)を全て追加。
文字列検索部分を簡素に。
? 1.3.0 [国内ドメイン分析](ac,ad,co,ed.go,gr,or,neで統計)を実装
perl version 4.0 for Linux だとエラーが出るポカを修正
TINAMIカテゴリ分析で割合の数値がおかしかったのを修正
[ブラウザ分析]での分類できるエージェントを結構いっぱい追加
[国籍分析]にイタリアを追加。 うーん。じぇらーと。
とある配列がメモリを解放していなかったポカを修正。 地球に優しくなる。
? 1.2.4 参照元へのリンクをON/OFFするスイッチを付けた
? 1.2.3α 国別ドメインの認識を強化
? 1.2.3 ブラウザの認識を強化・その辺のバグを一掃
? 1.2.2 動作モードを一括表示モード・ログ表示モード・ログ解析モードの3つに
? 1.2.1 グラフの表示を修正
? 1.2.0 TINAMIカテゴリ分析・ドメイン分析・ブラウザ分析機能追加
? 1.1.0 ログ表示モードとログ解析モードに分割
? 1.0.1 サーバにかなり負担を掛けてしまう大ポカを直した
お陰で実行時間が40秒から5秒へ大幅短縮(爆)
? 1.0.0 みてくれを良くして大幅パワーアップ。
acc_analyzerからWebstatへ名前変更
この間、暫く記録に残らない時が過ぎる…。
1998夏頃 0.0.1 CGIの勉強用にとりあえず作る。
表示はテイストレスだが軽かった

©1998-2001 不可思議絵の具
(http://www.skipup.com/~fuka/)