2002-01-10(木) 8150歩 [長年日記]
■ tDiary
夕べ、スナップショット1.3.2.20020110をリリースしたんだけど、ひどいバグが見つかってしまったのでアナウンス中止。というわけで、今日になって1.3.2.20020110.1に入れ替え。実はキャッシュを実装してみたんだが、携帯端末用と一般用のキャッシュファイルを同一にしてしまっていたのが敗因。もちろん別々にしないとダメだにょ。
キャッシュは、最新表示と月毎表示の時に利用される(日毎はサイズが小さいので毎回生成しても問題ない)。本文の更新時刻(ツッコミ含む)よりキャッシュが新しい場合には、キャッシュを採用する。キャッシュファイルはdiary.rhtmlの適用までを行ったものなので、キャッシュがヒットした場合の処理はプラグインの適用だけになり、3段階あるerb処理が2段階も省かれることになる。プラグインをあまり使ってない人には特に絶大な効果があるはず。
なお、リンク元の追加は更新時刻を変更しないので、キャッシュにヒットしてしまう。これでは困るので、リンク元の表示をプラグインとして追い出し、毎回生成することにした。最新・月毎で使われるreferer_of_today_short
と日毎・更新で使われるreferer_of_today_long
の2つ。
それからキャッシュをプラグインから使うために、Pluginクラスに@cache_path
を追加。実は@data_path
も追加してあるけど、将来別々にする可能性もあるので@cache_path
の利用を推奨。
■ というわけでベンチマーク。去年の8月を使ったのは、一番データが大きかったから。
% time (echo date=200108 | ./index.rb > /dev/null) ( echo date=200108 | ./index.rb > /dev/null ) 4.20s user 0.14s system 99% cpu 4.346 total % time (echo date=200108 | ./index.rb > /dev/null) ( echo date=200108 | ./index.rb > /dev/null ) 2.40s user 0.07s system 99% cpu 2.471 total
最初のがキャッシュファイルがない状態、次のはキャッシュが効いてる状態。リンク元生成をプラグインに追い出す前は確実に2倍は出ていたんだけど、今は1.8倍くらいか。まぁ、営業的にはだいたい2倍と言っていい数字だろう(営業って?)。というわけで、XREAあたりで負荷率が気になってる人もチャレンジする価値はあるかも。もっともスナップショットなのでそれなりの覚悟はよろしく。
■ リンク元といえば、昨日は『最高に気持ち悪い 写真』で検索されてしまって、シオシオですよ。ちょうどHalfLifeをやってる頃だからひっかかったんだろうなぁ。
■ Content-Encoding: deflate(2)
最近のw3mは対応しているという指摘をいただいたので、自宅のMaryを上げてみた。とりあえずAsumi用の0.2.3.2のSRPMをもらってきて、これをビルド。おお、たしかに見えるようになった♪ これでdeflateもどんと来いだ。時間を見て0.2.4のRPMを作ってみよう。
ただ、移行時の手違いでbookmarkを飛ばしてしまったのが泣ける。まぁ、会社で使ってるのもほぼ同じだからそれを持っていけばいいのだが。つーか、最近はアンテナしか使ってないよ(笑)。
明日バイク乗るぞぉ〜〜〜〜(笑)
げげ。傘持ってこなきゃ
自信ないですが、 Keep-Alive のときは、データを chunk (データの長さとデータのセット)にわけて転送して、データの終了を 0 バイトの chunk で通知できるので問題ないような気がします...が、そういう問題ではないのかな?
RFC 確認したり...なんてしてません(>_<;