読者です 読者をやめる 読者になる 読者になる

CubicLouve

Spring_MTの技術ブログです。https://github.com/SpringMT (http://spring-mt.tumblr.com/ からの移転)

特定のJSONの圧縮効率を調べてみる(snappy、gzip、xz、lz4、zstd)

ruby

snappyが入っているのは察してほしい

データの詳細は後で書く。(これも察して欲しい。だいぶ偏ったデータではある)

これから詳細をちゃんと書くが、一旦ここにおく

マシンスペック

iMac使っています。

% system_profiler SPHardwareDataType
Hardware:

    Hardware Overview:

      Model Name: iMac
      Model Identifier: iMac14,2
      Processor Name: Intel Core i5
      Processor Speed: 3.2 GHz
      Number of Processors: 1
      Total Number of Cores: 4
      L2 Cache (per Core): 256 KB
      L3 Cache: 6 MB
      Memory: 8 GB
      Boot ROM Version: IM142.0118.B00

% sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz

結果

圧縮方式 圧縮時間(秒) 伸長時間(秒) 圧縮後サイズ(KB)
なし 159320(156KB)
snappy 18913(18K)
gzip 9982(9.7K)
xz 7024(6.9K)
lz4 23095(23K)
zstd 9960(9.7K)

実行時間の結果

github.com

圧縮時

Warming up --------------------------------------
              snappy    22.000  i/100ms
                gzip    20.000  i/100ms
                  xz     2.000  i/100ms
                 lz4    24.000  i/100ms
                zstd    21.000  i/100ms
Calculating -------------------------------------
              snappy    802.750  (±115.7%) i/s -      1.254k in   5.373229s
                gzip    295.138  (±40.7%) i/s -    980.000  in   5.055020s
                  xz     22.329  (± 4.5%) i/s -    112.000  in   5.030328s
                 lz4    949.545  (±110.1%) i/s -      1.224k in   5.053683s
                zstd    892.079  (±117.1%) i/s -      1.302k in   5.069196s

伸長時

Warming up --------------------------------------
              snappy   851.000  i/100ms
                gzip   414.000  i/100ms
                  xz   111.000  i/100ms
                 lz4   861.000  i/100ms
                zstd   577.000  i/100ms
Calculating -------------------------------------
              snappy     10.356k (±16.0%) i/s -     51.060k in   5.081812s
                gzip      4.655k (±10.2%) i/s -     23.184k in   5.039399s
                  xz      1.188k (± 7.7%) i/s -      5.994k in   5.080418s
                 lz4     10.312k (±12.0%) i/s -     50.799k in   5.000477s
                zstd      6.597k (± 8.4%) i/s -     32.889k in   5.023823s