docs: record the multithreaded LZMA2 path and the ZIP fsync removal

This commit is contained in:
Songlx516 committed 2026-09-16 14:31:25 +08:00
1 parent 5cc493d152
commit 5e8b56f23e
2 files changed
+13 -3

No files matched your search

+1 -1
View File
@@ -258,7 +258,7 @@ ELF 已构建,但需装 PS5 实测:
### 可选项(非阻塞)
- **性能**:实测上游(7-Zip 本体)在 **7z 格式上快 1.9×(单线程)/ 3.4×(8 线程)**;ZIP 无显著差异。差距不在我们的架构(我们比 SDK 自己的 `SzArEx` 路径还快 1.02×)。**汇编解码器已于 2026-09-16 启用**(`Asm/x86/LzmaDecOpt.asm` + jwasm + `-DZ7_LZMA_DEC_OPT`,1.26×,无 jwasm 自动退纯 C),剩余差距是**多线程 LZMA2**(未做)。完整数据与复现方式见 `docs/EXTRACTION-PERF.md`,基准工具 `tests/bench_driver.py`
- **性能**:实测上游(7-Zip 本体)在 **7z 格式上快 1.9×(单线程)/ 3.4×(8 线程)**;ZIP 无显著差异。差距不在我们的架构(我们比 SDK 自己的 `SzArEx` 路径还快 1.02×)。**已全部落地(2026-09-16)**:①汇编解码器(`LzmaDecOpt.asm`+jwasm,1.26×,无 jwasm 自动退纯 C)②多线程 LZMA2(`Lzma2DecMt`,8 线程,1.37×,线程失败自动降级 chain;BCJ2/加密布局仍走 chain)③ZIP 逐条目 fsync 移除(8000 文件 ≥14×)。7z 现与 7-Zip 单线程打平、ZIP 已压过官方(本机受 Defender 拖累不可比,PS5 无该因素)。RAR 与官方 UnRAR 同速(unrar 自带 `target("aes")` SIMD 已启用,无逐条目 fsync)。完整数据见 `docs/EXTRACTION-PERF.md`,基准工具 `tests/bench_driver.py`
- fsync 批量化(每 64MB/N 条刷一次)—— 9.5 万文件级可省 20–30 分钟
- 解压失败保留 staging 支持续解(中等改动)
- 进度条 % / 文字进度 / ETA 三处口径统一为字节
+12 -2
View File
@@ -7,8 +7,18 @@
> `third_party/7z/`,jwasm `-elf64 -DABI_LINUX` 汇编进 PS5 与 Linux 两条链路,
> `LzmaDec.o` 加 `-DZ7_LZMA_DEC_OPT`。实测 **1.39 s → 1.05–1.13 s(1.26×)**,解出字节与
> C 版逐字节一致;7z 测试矩阵 28 checks 全过。Makefile 对该优化做了条件化(无 jwasm 自动
> 退回纯 C)并依赖 Makefile 本身触发重编(flag 变化不会被 make 察觉)。ELF
> 1,017,944 B / sha256 `7fc0881b…`。方案 B(多线程)仍未做,见第四节。
> 退回纯 C)并依赖 Makefile 本身触发重编(flag 变化不会被 make 察觉)。
>
> **✅ 方案 B 已落地(2026-09-16)**:`Lzma2DecMt.c` + `MtDec.c` + `Threads.c` 已 vendor,
> 单一纯 LZMA2 folder(7-Zip 默认布局)走 SDK 并行解码器(`src/sevenz_mt.c` 适配层),
> 8 线程 + 1 MiB inBufSize_MT;`SZ_ERROR_THREAD` 自动降级回单线程 chain(BCJ2/加密/奇异
> 布局本来就由 chain 负责)。实测 329 MiB:1.05 s → **0.77 s(1.37×)**,与 7za -mmt=off
> 打平(898 ms);7za -mmt=8 = 485 ms。7z/ZIP/RAR 163 checks 全绿。
>
> **✅ ZIP 引擎 fsync 批量化(2026-09-16)**:逐条目 fsync 已移除(publish 是纯 rename、
> 无续解功能,该 fsync 无收益;RAR/7z 引擎本来就没有)。8000 文件 fixture:fsync 版
> \>200 s 未完成 → 无 fsync **14.5 s(≥14×)**。同机官方 7-Zip 反而要 >400 s(Defender
> 实时扫描逐文件查杀;PS5 无此因素)。
## 结论