読者です 読者をやめる 読者になる 読者になる

PGは電子羊の夢を見るのか?

データとパターンのあいだ

なぜ「WPのアクセス解析は遅い」と言われるのか?

最近ユーザーのアクセス解析をするお仕事を任された。
そこで、PHPでそれらしいことをしてるものをいろいろ探していた。 すると、とある方の助言でWordPressアクセス解析プラグインにたどり着いた。

すると、プラグインレビューサイトに「このプラグインは詳しくアクセス解析出来ますが、動作が遅いです!!」と書いてあるものが多い。
何故か??
気になったので、各プラグインを落として調べてみた。

これらの遅いと言われるプラグインには共通して「browscap_php」というライブラリが使われていることがわかった。
このライブラリについても調べてみると、「詳しくアクセス情報を取得できますが、動作が遅くなります!!」と書かれている記事が多い。
どうやら、こいつが原因らしい。

というわけで、このライブラリをインストールして動かしてみた。

こいつはまず「browscap.ini」という、UseAgentのパターンとそれにマッチした時のアクセス情報の一覧が収められている。
こいつがでかく、5MBぐらいある。 実装上ではこいつを読み込んでくる。(2回目以降の実行の際はキャッシュが使われる。)

次に、アクセスしたユーザーのUserAgentと各パターンがマッチするかどうかをループを回して正規表現でマッチングするかどうか調べる。
まずは登録されているパターンを100個ずつぐらいつなげてループを回し、この中でヒットするかたまりを探す。
かたまりが見つかったら、その中の一個ずつとUserAgentがマッチするかループを回して確かめる。
ループをひたすら回して正規表現でマッチするか確かめる実装なので、運が悪いとなかなかに時間がかかってしまう。

しかし、登録されているパターンの数が多い分、正確にアクセスを解析することができる。
リアルタイム解析やサーバー負荷を考えなければ、非常に良いライブラリと言える。

今回の実装で使えるかは…