プログラミング

zlib解凍スピードテスト

2006年3月30日

 PHP の zlib 関数 readgzfile() による表示スピードを計測。非圧縮のファイルの表示速度と比較した。

 ファイルとしては、このブログの表ページ(約50kb)を利用。圧縮ファイルは
<?php
fwrite(fopen('test.doc.gz','w'),gzencode(file_get_contents ('test.doc'),9));
?>
で製作(9の部分は圧縮率で、9で高圧縮、0で圧縮無し)。

ファイルの解凍とスピード計測は、
<?php
$before=time()+microtime();
readgzfile('test.doc.gz');
$after=time()+microtime();
echo $after-$before;
?>
で行った。

(結果)

非圧縮(50.38 KB)
0.0014660358429
0.00132083892822
0.000970125198364
(平均0.00125秒)

圧縮レベル1 (10.96 KB)
0.00151300430298
0.00150585174561
0.00142598152161
(平均0.00148秒)

圧縮レベル9 (10.92 KB)
0.00269293785095
0.00135397911072
0.00137495994568
(平均0.00180秒)

 zlibデフォルトの圧縮レベル1で、テキストファイルの場合は圧縮率はよさそう。表示スピードも、非圧縮と比べて20%ほどしか変わらないという結果になった。

 ちなみに、コントロール実験
<?php
$before=time()+microtime();
//readgzfile('test.doc.gz');
$after=time()+microtime();
echo $after-$before;
?>
の平均実行速度は、0.000060 秒。

 早速 NP_SimpleCache に組み込んだ。うまく行っているようである。

コメント

コメントはありません

コメント送信