zlib解凍スピードテスト
2006年3月30日
PHP の zlib 関数 readgzfile() による表示スピードを計測。非圧縮のファイルの表示速度と比較した。
ファイルとしては、このブログの表ページ(約50kb)を利用。圧縮ファイルは
ファイルの解凍とスピード計測は、
(結果)
非圧縮(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%ほどしか変わらないという結果になった。
ちなみに、コントロール実験
早速 NP_SimpleCache に組み込んだ。うまく行っているようである。
ファイルとしては、このブログの表ページ(約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 に組み込んだ。うまく行っているようである。