[Fswiki-dev] Re: FSWiki4.0 への要望

Back to archive index

Hiroaki Sakuma hiroa****@sakum*****
2005年 3月 25日 (金) 11:08:53 JST


佐久間です.


> > # AutoLoaderで動かすカスタマイズは簡単です
> 長年Perlと付き合ってきましたが、こういったものを読むと本当に勉強になります。
> AutoLoaderというものがあるのですね。
> 速度向上が望めるのであれば、多少のプログラムのカスタマイズもすべきだと考
> えています。
> 逆にAutoLoaderを用いるデメリットというものはどういったものがあるのでしょう
> か。

試しに,どれだけ簡単に速度向上が望めるか,テストしてみました.

なお,この実験はあまり細かいことは気にしてないので,そのまま鵜呑みにしないで
ください.

AutoLoaderのデメリットですが,FSWikiのような大規模なソフトウェアで,ファイル
のIOがネックになっている場合以外では,反対に処理が多くなって速度が低下する恐
れがあります.
また,せっかくコンパイルの作業の必要がないPerlなのに,ソースコードを書き換え
る度にautosplit(AutoLoaderの下準備)が必要となり,手間が掛かります.
ユーザサイドから見ると,モジュールがファイル単体ではなくなるため,バグなどが
あったときに原因をつかみ難くなります.


■実験内容
FSWiki(デフォルトの状態)と,lib/Wiki.pmをAutoLoader化したものを実際に動作さ
せ,ベンチマークツールを使って処理速度の差を確認する.

■実験環境

CPU    : intel PentiumM 725
RAM    : PC3200 1,024MB
HDD    : HITACHI 7K250(SATA) 160GB x 2(RAID1)

OS     : FreeBSD5.3-RELEASE-p5(オリジナルカーネル)
Perl   : v5.8.6 built for i386-freebsd-64int
FSWiki : 3.5.7
Apache : 2.0.53(mpm=worker)


■準備
fswiki_default(デフォルトのまま)と,fswiki_ai(AutoLoader化)したものを用意す
る.

$ fetch "http://osdn.dl.sourceforge.jp/fswiki/13351/wiki3_5_7.zip"
$ unzip wiki3_5_7.zip
$ mv wiki3_5_7 fswiki_default
$ unzip wiki3_5_7.zip
$ mv wiki3_5_7 fswiki_ai

□デフォルト

$ cd fswiki_default
$ chmod 700 wiki.cgi
$ mkdir log

□AutoLoader化

$ cd fswiki_ai
$ chmod 700 wiki.cgi
$ mkdir log
以下AutoLoader化作業(差異は添付のパッチファイル参照)


■測定

同一マシン上で,ab(Apache Bench)にて,以下オプションで実行.

# ab -c 100 -n 1000 (対象URL)


■結果

□デフォルト
Concurrency Level:      100
Time taken for tests:   0.724418 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Non-2xx responses:      1049
Total transferred:      610518 bytes
HTML transferred:       354562 bytes
Requests per second:    1380.42 [#/sec] (mean)
Time per request:       72.442 [ms] (mean)
Time per request:       0.724 [ms] (mean, across all concurrent requests)
Transfer rate:          822.73 [Kbytes/sec] received

□AutoLoader化
Concurrency Level:      100
Time taken for tests:   0.364522 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Non-2xx responses:      1049
Total transferred:      600028 bytes
HTML transferred:       349317 bytes
Requests per second:    2743.32 [#/sec] (mean)
Time per request:       36.452 [ms] (mean)
Time per request:       0.365 [ms] (mean, across all concurrent requests)
Transfer rate:          1604.84 [Kbytes/sec] received


=====================
Sakuma,Hiroaki
 hiroa****@sakum*****
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: autoloader.diff.gz
型:         application/x-gzip
サイズ:     10179 バイト
説明:       無し
Download 


Fswiki-dev メーリングリストの案内
Back to archive index