LoginSignup
50
37

More than 5 years have passed since last update.

gzipの各圧縮レベルでの圧縮率と処理時間の計測

Last updated at Posted at 2014-11-03

gzipの各圧縮レベルでの圧縮率と処理時間の計測

Apache の mod_deflate で DeflateCompressionLevel を調整するにあたり、gzipで各圧縮レベルでの圧縮率と処理時間を調べました。

結果

圧縮率を指定しない場合は 6 が選択されるようです。

レベル サイズ(Byte) 圧縮率 10,000回圧縮時の
処理時間
6とのサイズ比 6とのサイズ差
無圧縮 58,757 - - - -
1 12,377 78.94% 0m23.328s 1.17 1,769
2 11,979 79.61% 0m27.751s 1.13 1,371
3 11,757 79.99% 0m36.023s 1.11 1,149
4 11,076 81.15% 0m43.181s 1.04 468
5 10,771 81.67% 0m43.981s 1.02 163
6(デフォルト) 10,608 81.95% 0m44.991s 1.00 0
7 10,575 82.00% 0m46.586s 1.00 -33
8 10,519 82.10% 0m54.098s 0.99 -89
9 10,480 82.16% 1m03.603s 0.99 -128

1か2が良さそうですね。

サンプルファイル

とあるサイトのトップページ(58,757Byte)

環境

CPU: Core2Duo E8400 3.0GHz
MEM: 5GB
OS: Ubuntu 14.04 32bit

コマンド

それぞれの圧縮レベルで10,000回圧縮した時にかかった時間をtimeコマンドで計測。
timeコマンドのreal値を取りました。

$ for rate in $(seq 1 9) ; do echo "rate ${rate}"; time for i in $(seq 1 10000) ; do gzip -c -${rate} index.html > /dev/null ; done; echo ""; sleep 10; done

読みやすくしてみました。下は試してないので間違ってるかも

$ for rate in $(seq 1 9)
do
  echo "rate ${rate}"
  time for i in $(seq 1 10000) ; \
      do gzip -c -${rate} index.html > /dev/null ; \
    done;
  echo ""
  sleep 10
done
50
37
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
37