ひとりごと

新しい記事:[965]  古い記事:[963] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2003/10/09 (木)

・ ちんたら表示

うちのページのアクセスログの表示はとても遅くてあくびがでるのですが、サーバをT20に変えてからはさらに遅さに磨きがかかっております。件数はそんなに多くはないものの、『そもそもPostgreSQLではcount(*)が遅い』のと『キーワード表示とリンク元表示はそれなりに時間がかかる』ということで、問合せ方法やインデックスを工夫してみても劇的には早くなりそうにありません。

ということで、高速化はあきらめて、表示できるところからちんたら表示するようにしてごまかすことにしました。やったことは下記のとおり。

  1. .htaccessに
    <Files "index.php">
        php_value output_buffering off
        php_value output_handler off
    </Files>
    を追加 (php.iniでの設定をキャンセル)
  2. 文字列の表示には
    function print2($str)
    {
        echo mb_convert_encoding($str,"SJIS");
    }
    という関数を作成してこちらから表示するように変更
  3. 適当なところに flush()を挿入

最近のPHPを普通に使うと、出力が全てバッファに入った後でスクリプトの動作が終了してからまとめて転送されます。回線が混雑している場合には非常に効率がよいと思いますが、スクリプトの動作に時間がかかる場合には動作が完全に終了するまで一文字も表示されないので余計に遅く感じてしまいます。

ということで ちんたら表示に変更してみたところ、動作は若干遅くなっているはずなのですが、始めの数行は一瞬で出てくるのと 一年表示とかさせても項目ごとに段階的に表示されるので、反応が良くなったかのように錯覚してしまいます。根本的にテーブル設計からやり直せばもっと速くなるとは思いますが、自分でもあんまり見ない(笑)ページに手間ひまかけてもしょーがないので、これでよいことにしておきましょう。

[つっこみ]

新しい記事:[965]  古い記事:[963] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)