世界を動かす技術を、日本語で。

Windows用の「7-Zip」が圧縮に64以上のCPUスレッドを使用できるようになりました

2025年7月7日原文(7-zip.org)

概要

  • 7-Zipは 圧縮・解凍ソフトウェア であり、定期的に多くの機能追加・バグ修正が行われている。
  • マルチスレッド対応強化 や圧縮速度の向上、辞書サイズの拡大など、パフォーマンスと互換性が進化。
  • 新しい 圧縮形式やフィルタ、ハッシュアルゴリズムへの対応が継続的に追加。
  • ユーザーインターフェースやファイル管理機能も 改良 されている。
  • セキュリティ修正 や安定性向上も随時対応。

7-Zip 主なバージョンアップ履歴

  • 25.00 (2025-07-05)

    • Windows版で 64スレッド超のCPU 利用対応。複数プロセッサグループ対応。
    • bzip2圧縮速度 が15~40%向上。
    • deflate(zip/gz)圧縮速度 が1~3%向上。
    • zip, cpio, fatアーカイブの サポート改善
    • バグ・脆弱性修正
  • 24.09 (2024-11-29)

    • LZMA/LZMA2のデフォルト辞書サイズ 拡大。64bit版は最大256MBまで対応。
    • SHA-512, SHA-384, SHA3-256, MD5 のハッシュ計算対応。
    • APM, HFS サポート強化。
    • 一時フォルダ利用時の 進捗表示 改善。
    • Zone.Identifier ストリーム伝播バグ修正。
    • その他バグ修正。
  • 24.08 (2024-08-11)

    • zipアーカイブ作成時の余分なゼロバイト出力バグ修正
    • GDIオブジェクトリーク の修正。
    • ファイルアイコン表示の 最適化
    • CVE-2024-11612 対応。
  • 24.07 (2024-06-19)

    • 一部不正なZSTDアーカイブでの クラッシュバグ修正 (CVE-2024-11477)。
  • 24.06 (2024-05-26)

    • 一部ZSTDアーカイブが 解凍できないバグ修正
  • 24.05 (2024-05-14)

    • -myv={MMNN} スイッチで7zアーカイブのデコーダ互換バージョン指定可能。
    • -myfa, -myfd スイッチで特定フィルタの使用可否を指定可能。
    • バグ修正。
  • 24.04 (2024-04-05)

    • ファイルマネージャーに 「一時ファイル削除」メニュー 追加。
  • 24.03 (2024-03-23)

    • RISCVフィルタ でRISC-V向け実行ファイルの圧縮率向上。
    • ARM64版Windowsで LZMA/LZMA2復号速度 20~60%向上。
    • メモリ使用上限指定や RAR大辞書サイズ対応
    • XXH64, BLAKE2sp ハッシュメニュー表示。
    • タイムスタンプの UTC表示切替
    • Linuxパスセパレータ 表示対応。
    • バグ修正。
  • 24.01 (2024-01-31)

    • ZSTDアーカイブ (.zst)解凍対応。
    • ZIP, SquashFS, RPMの ZSTD圧縮対応
    • XXH64 ハッシュ対応。
    • WinRAR 7.00の 4GB超辞書RAR 解凍対応。
    • DMGのXZ圧縮 対応。
    • NTFS, MBR, GPT イメージ対応強化。
    • アーカイブ解凍・ハッシュ計算の 速度最適化
    • Linux版の マルチボリューム作成バグ修正
    • その他バグ修正。
  • 23.01 (2023-06-20)

    • 翻訳情報表示 機能追加。
    • バグ修正。
  • 23.00 (2023-05-07)

    • ARM64フィルタ でARM64実行ファイル圧縮率向上。
    • exe/dll判別による 自動フィルタ選択
    • BCJ2フィルタのデフォルトセクションサイズ拡大
    • UDF, cpio, WIM サポート強化。
    • マルチボリュームアーカイブの 同時オープンファイル数削減
    • エクスプローラーコンテキストメニュー最適化
    • ドラッグ&ドロップ操作改善
    • 複数のバグ修正。
  • 22.01 (2022-07-15)

    • UDF 2.60 サポート。
    • HFS, APFS サポート強化。
  • 22.00 (2022-06-15)

    • APFS抽出対応
    • POSIX(pax)形式TARアーカイブ作成
    • 高精度タイムスタンプ 記録対応。
    • Linux版で 所有者/グループID・名記録スイッチ 追加。
    • Zone.Identifier伝播 オプション追加。
    • アーカイブ作成時の メタデータ選択機能
    • バグ修正。
  • 21.07 (2021-12-26)

    • VHDXディスクイメージ 抽出対応。
    • ディレクトリ除外スイッチ -spm, -im! 追加。
    • アーカイブ内のファイルソート順改善。
    • TARアーカイブの GNU TAR互換性向上
  • 21.06 (2021-11-24)

    • 「アーカイブ追加」ウィンドウで RAM使用上限設定 可能。
    • -mmemuse スイッチで圧縮/解凍時のRAM上限指定。
    • ディレクトリ属性未設定バグ修正。
    • バグ修正。
  • 21.04 beta (2021-11-02)

    • RAM不足時のスレッド数自動調整
    • sha256sum互換ファイル作成・検証 対応。
    • -shd スイッチで検証用ディレクトリ指定。
    • -xtd スイッチでディレクトリメタデータ除外。
  • 21.03 beta (2021-07-20)

    • LZMA/LZMA2最大辞書サイズ4GB に拡大。
    • 圧縮速度の小規模最適化。
  • 21.02 alpha (2021-05-06)

    • zipアーカイブに UTF-8ファイル名フィールド追加
    • macOS版コマンドライン リリース。
    • ARM64版で LZMA/LZMA2復号速度向上

今後の展望

  • マルチコア・大容量メモリ環境 への最適化が進行中。
  • 新しい圧縮形式やフィルタ への対応が続く見込み。
  • セキュリティ・安定性 の強化は今後も重点。
  • ユーザビリティ向上 のための機能追加・改善が期待される。

この履歴は、7-Zipの 進化の流れ と、ユーザーの利便性・パフォーマンス・セキュリティ向上への継続的な取り組みを示す内容。

Hackerたちの意見

Windowsに制限があるのはなんで?Linuxにはそんな制限見当たらないんだけど。

これ、一般的なWindowsの仕様みたいだね。https://learn.microsoft.com/en-us/windows/win32/procthread/p...によると、64CPU以上で動かしたいアプリは、そのための専用サポートが必要らしいよ。

Windowsにはプロセッサグループって概念があって、最大64個の(ハードウェア)スレッドを持てるんだ。7zipが複数のプロセッサグループをサポートするようにアップデートされたんじゃないかな。

リンク先のプロセッサグループのドキュメントにも書いてあるね。> 「プロセッサアフィニティマスクやプロセッサ番号を使う関数を呼ばないアプリケーションは、プロセッサの数に関係なくすべてのシステムで正しく動作します。」7zipが直面した制限は、システムに論理プロセッサがいくつあるかをチェックする方法にあったんじゃないかな。GetActiveProcessorCountを使えば、ALL_PROCESSOR_GROUPSを渡すことでシステムの論理プロセッサ数がわかるけど、このAPIはWindows 7で追加されたんだよね(それも15年以上前の話だけど、もう少し早く条件付き呼び出しを追加してテストする時間があったんじゃないかな)。

もしかしてWaitForMultipleObjectsの64(MAXIMUM_WAIT_OBJECTS)の制限が関係してるのかな?最初はLinuxの同等品より優れているように見えるAPIなのに、ちょっと残念な制限だね。

NTカーネルの多くの同期プリミティブは、CPUセットのレジスタ幅ビットマスクに基づいているから、64ビットシステムでは64個のハードウェアスレッドの集まりがそれぞれ独自のスケジューラインスタンスで動いている感じなんだ。残念ながら、これらの操作はマクロやインライン関数として実装されているから、ドライバーABIの一部でもあるんだよね。そのせいで、ソフトウェアスレッドを別のプロセッサグループに移すのは、ユーザースペースで管理しなきゃいけない手動プロセスになっちゃう。

WindowsはひどいOSだよね。

WaitForMultipleObjectsは64に制限されてるし…ずっと前からそうだよ。

zstdサポートがないせいで7-Zipが relevanceを失うんじゃないかと心配してる。zlibのパフォーマンスは大きなファイルには耐えられないし、zlib-ngのSIMD実装もほんの少ししか役に立たない。残念だな、7-Zipは暗号化やファイル分割機能があって、かなり素晴らしいコンテナフォーマットなのに。

https://github.com/mcmilk/7-Zip-zstd

zstdに興味がある人はあんまりいないと思う。ほとんどの7-zipユーザーは、GUIの便利さを重視してるんじゃないかな。

ちょっと速くなったり効率が良くなったりしても、ほとんどの人は乗り換えないよ。7zは素晴らしいユーザー体験(便利なGUIと多くのフォーマットに対応)を提供してるから、みんな使い続けるんだよね。

Hacker Newsで議論の続きを見る