LoginSignup
1
0

More than 3 years have passed since last update.

h5pyのcompressionのベンチマークをとってみた

Last updated at Posted at 2020-09-11

今回はデカい画像データをh5形式で保存しなおしました.
h5pyでは,以下の様に書くと変数をgzipで圧縮できます.

x = cv2.imread("デカい画像1.png")
y = cv2.imread("デカい画像2.png")
with h5py.File("out.h5", "w") as f:
    f.create_dataset("data1", data=X, compression="gzip", compression_level=4)
    f.create_dataset("data2", data=y, compression="gzip", compression_level=4)

何度かやった結果の平均とかではないので,時間については不確かです.

圧縮レベル 出力ファイルサイズ(GB) 出力時間(sec) 読み込み時間(sec)
無圧縮 6.83 7.7 10.1
1 1.48 81.3 53.7
4(デフォルト) 1.47 107.8 57.2
9 1.46 204.3 56.6

データが変わると結果も変わるのかもしれませんが,

  • 圧縮なしと圧縮ありでは,ファイルサイズに大きな差があるが,入出力にかかる時間も大幅に増える.
  • 圧縮レベルを上げると,処理時間は割と長くなるが,圧縮率はそんなに上がらない
  • 読み込み時間は圧縮レベルに関わらずあんまり変わらない

シンプルにgzipのベンチマークと同じような傾向だと思いますが,
圧縮有り,無しの入出力時間の差は気になるケースがありそうですね.

1
0
0

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
1
0