いわゆるdouble freeかと思ったらそうでもなく(っていうかdouble freeしてもPerlが良きに計らってくれる)、もしかして関数内でexit()してるのがまずいのか。
とりあえず極力一番外から出るように変更。
こういう時に例外が使えればなぁ……
更新処理の負荷ですが、さっき(2005/04/06 23時)に更新された村が
313(3→4日)、328村(2→3日)、330(3→4日)、332(7→8日)、が通常更新、331(5日)が書庫送り
日付を進める処理自体はすべて1秒未満。
ページの再生成処理が
313(4秒)、328村(8秒)、330村(13秒)、332村(36秒)、331村(10秒)、って感じ。
これはロックを取ろうとして待ってる時間を含んでますが、まあ現時点では概ねロックは確保しやすいように実装してます。
まあぶっちゃけ、過去ログの上の日付アンカーを更新しなくていいなら、ページ再生成は格段に処理量減らせるんですけどね。
思いつく手段としては……
(1)SSIを使う (2)フローティングフレームを使う (3)JavaScriptで書く
どれも微妙だなぁ……。
——
(2)iframeが一番地球に優しそうなんだけど、iframeのheightを「スクロールバーが出ないちょうどいい塩梅のheight」の指定方法がわからん罠。
まあ120pxくらいの決めうちにしてもいいんだけど。
コメントを残す