キモブロ

Please spy check please, Fucking retard

YP4G改造計画

とりあえずYP4Gをローカルで動かしたのでその時にだいたい重い原因は分かった。
今後やってみたいと思ってるロードマップについて

とりあえず大筋で考えてる流れは以下。
1. まず最初は既存のYP4Gを速度アップする改造を施す(mysql化、キャッシュの適切な運用、WEBインターフェース改善)
2. うまくいったらすべてRuby + DataMapperで書きなおす

詳細の説明をすると
・適切にキャッシングするようにする
ExpiresとかLast-Modifiedヘッダを適切に運用するようにする。クライアントがindex.txtにアクセスしたときに、index.txtが前回アクセス時と比較して、実際に更新されていた時だけデータを取得するようにする。HEADメソッドで更新を検知して、GETで実際のデータ取得するみたいな、まぁ普通のHTTPクライアントが普通にやってくれていることに対応するために、ExpiresとかLast-Modifiedヘッダの適切運用が行われるようにしたい。

SQLiteMySQLに書き換える。YP4GではPHPSqlite関係の関数を直書きで使うようになってる。SQLiteは単純に遅いのでこれをMySQLを使うように書き換える。というかSQLiteの古いバージョンはBEGIN-COMMITを使わないと異様に遅かった記憶がある(YP4GはSQLite2を使ってる)。うん、だいぶレガシーだ。ここを変えるだけで目に見えて早くなると思う。

PHPの抽象DBアクセスライブラリである、PDOを使うようにするのが一番よいのだけど、YP4Gはその制作時の時代背景のため仕方ないんだけど、viewとcontrollerの分離ができてないのでそこまでいじるとどこかで意図しないバグが生まれそうなのであまりやりたくないという感じ。それなら1から全て書きなおしたほうが楽っぽい。

・帯域測定のアプリケーションを書きなおす。オリジナルはC言語で書かれているんだけど、Ruby+Webrickで書きなおす。同時にここでもSQLite関係の関数が直書きされているので、MySQL化する。IPアドレスごとに帯域測定した結果をたぶんどっかのテーブルに入れてると思われる。(あんま詳しくまだ見てない) C言語で書かれたコードは単純に移植性が低いから書きなおしたい。コンパイルするときに俺自身がはまって小一時間消費したので。