misa77、LZ4 を上回る高速デコードを実現した OSS ライブラリを公開──圧縮率と推論スループットを両立
書き込み 1 回・読み込み多用のワークロードに特化し、x86/ARM 環境で LZ4 比 1.5-3 倍の解凍速度を達成した C++20 実装の圧縮コーデック。
リリース: 2026-07-02 · 読了 3 分記事の要約
1. 核心(What)
- misa77 は LZ ベースの圧縮コーデックで、v0.2.0 時点で 2 段階の圧縮レベル(level 0/1)を提供。
- Intel Core i7-14650HX 環境のベンチマークにおいて、Silesia コーパスの 12 ファイル中 11 ファイルで LZ4 を上回るデコード速度を記録。
- メモリ使用量は入力サイズに依存せず、解凍時は 0 MB、圧縮時は最大 5 MB に固定される設計。
- MIT ライセンスで公開され、C++20 と CMake 3.20 以上を要件とする。
2. 影響(Why)
- 読み出し負荷の劇的な軽減: 一度圧縮して何度も読み出すログ解析やデータセット配布において、解凍速度がボトルネックとなるケースを解消し、システム全体の I/O スループットを向上させる。
- 国内 SaaS のコスト最適化: 大量のログデータを S3 等に蓄積する国内のデータ分析基盤や Vertical SaaS 開発者は、解凍コストを削減することで、同一サーバー台数での処理能力を 1.5 倍以上に引き上げられる可能性がある。
3. 根拠・詳細(How)
- アーキテクチャと実行環境: x86-64 環境では実行時に AVX2/SSE2 を自動選択し、ARM 環境ではコンパイラによる自動ベクトル化を活用。CMake の -DMISA77_MARCH=native オプションでターゲット CPU に最適化されたバイナリを生成可能。
- 圧縮・解凍の仕様: v0.2.x 現在、decompress 関数は入力が有効な misa77 ストリームであることを前提としており、入力の検証機能は v0.3.0 で追加予定。ストリーム形式は docs/ ディレクトリに定義。
4. 展望・課題(Next)
- 安全性と機能の拡充: 現時点では実験的実装のため、不正な入力に対する堅牢性(入力安全なデコーダ)を次期 v0.3.0 で実装予定。