EmptyRoom

Diary

twitterもはじめました

[101]2005/9/4(Sun) [tag: 旧日記システム ]
さて、結構な頻度でワシの日記ページを見ている人なら、
もしかしたら気づいているかもしれない。

日記ページだけ他のページよりレスポンスが遅い

という事に。
いつかこうなることはわかってた。
でも、どのくらいの量のテキストを読ませるとレスポンスが下がるのか知りたかった。
ということで、今まで放置していたんだけど、
そろそろ本格的に日記システムの軽量化について考察しなければならないようだ。

今の記録形式は単純なものだ。

<>日記No.<>日付<>タイトル<>本文<>(改行)

のような感じになっていて、"<>"が各データの区切り文字になっている。
そして、1行が1日分の日記になってる。
各データの取得は文字を一文字一文字比較して区切り文字の間だけを
データとして得られるようにプログラムを組んである。
おそらく、これが遅い。
単純に考えて文字数の分だけループが回ってるのだから。
(現在、ログファイルのサイズは130KBくらいなので、
少なくとも13万回以上、ループが回っていると考えられる。)

ファイルを開くのに時間が掛かる説もあるけど、
ログファイルは数百KBしかないからこれはおそらく白。
(いずれこれがネックになる日が来るのだろうが、相当先。)

レスポンスを改善する手段として、

1.最もループ回数が多い"本文"の文字数をあらかじめデータに書き込んでおく。
(一文字一文字ループを回して区切り文字と比較する必要が無くなる。)

2.ログファイルの情報(登録件数、No.xxの日記は何行目に書かれているか等)
を書き込んであるファイルを別途出力し、
それを参照して読み込むデータ量を最小にする。

3.最もアクセス数の多い日記の最初に表示されるページをHTML化しておく。
(日記の更新、コメントの投稿のたびにHTMLを出力する。)

4.過去の日記と最近の日記でログファイルを分割する。

5.SQLなどのデータベース技術を導入する。

おそらく、今回、一番現実的な方法は1番と2番のコンビだろう。
一つだけ選ぶなら、1番かな…
プログラム的に楽なのは1番。
ただ、ログファイルの互換性が失われるので、
ログファイルコンバータを自作する必要がある。
(大して難しくはないけど…)

3番はレスポンス改善というよりは、サーバ負荷の改善だな…
4番はデータが散乱するので嫌。
5番は下手すると1から作り直しになるし、覚えなくちゃならないことが増える。

こういう事をやるたびに思うことは、
「プログラミングは構想しているときが一番楽しい」
ということだな…
動いたときも楽しいけどさぁ…

[92] Name : HIRO Date : 05/09/05(Mon) 05:07
( ´ー`)y-~~光だからあんまり重さは感じないなぁ…

てか、ページのレスポンスつーよりAKIの更新の遅さの方が(ry

ケラケラヽ(゜∀゜)メ(゜∀゜)メ(゜∀゜)ノケラケラ
[93] Name : AKI Date : 05/09/05(Mon) 14:39
いや、光とか関係なく、鯖側でHTMLを出力する時間のことなんだけど、
なんか使う時間帯でレスポンスが違うな…(ぉ
今は特に遅いと感じない…

まだ平気か?!

更新の遅さについては放っておけヨorz
[94] Name : HIRO Date : 05/09/05(Mon) 22:19
> 光とか関係なく、鯖側でHTMLを出力する時間のことなんだけど、
あー、そういうことか…フム…でも、確かに今でもそんなにはレスポンスが遅いとは感じないなぁ…時間帯か…さくらたんが忙しい時間帯はレスポンスが鈍いわけですね(ぉ

まぁ、確かにプログラミングは構想しているときが一番楽しいなw
[95] Name : AKI Date : 05/09/07(Wed) 04:31
実際にコーディングしてるときは、思いもよらぬバグに直面したりで、
結構萎えるときがあるよね。

しかし…意外にレスポンスが遅くないな(ぉ
名前
コメント

Cookieに名前を保存して,次回から名前の入力を省略する
パスワード