以下の記事でZstandardのWASMをビルドしました。せっかくなので解凍速度を比較してみます。
比較対象
- DecompressionStream gzipまたはdeflate形式のデータストリームを解凍するためのブラウザAPI
- zstddec-wasm・・・Zstandard v1.5.6をWASMでビルドしたもの
- fzstd v0.1.1・・・ZstandardのピュアJavaScript実装
デモページ
GitHubのリポジトリとデモページ
こんな感じで解凍処理を100回行い、解凍処理時間の平均値を表示します。
比較結果
対象データ:PumpNoInvalidPoints.e57 (V1) - XYZ,INT,RGB,STR,MUL - 22.1MB
適当な点群データをgzip/zstdの圧縮レベルデフォルトで圧縮したものを利用しました。
22146048 Jan 12 16:44 pumpNoInvalidPoints.e57 # 元データ
16755425 Jan 12 16:44 pumpNoInvalidPoints.e57.gz # gzip圧縮後(圧縮レベル6)
16051170 Jan 12 16:44 pumpNoInvalidPoints.e57.zst # zstd圧縮後(圧縮レベル3)
ファイル形式 | 平均解凍時間 |
---|---|
DecompressionStream(gzip) | 65.9 ms |
Zstandard(WASM) | 37.4 ms |
Zstandard(fzstd) | 169.6 ms |
ブラウザのネイティブAPIよりZstandard(WASM)のほうが処理速度速いんですね・・・