当前代码写了两次文件——worker 写→主进程读——对于每一步来说都是多余的:ProcessPoolExecutor 的 submit().result() 可以直接返回到主进程的内存里。
Python 的并行原语已经解决了文件 IO 问题。进程之间的通信不需要经过文件系统——multiprocessing.Queue、shared_memory、Pipe 都可以做到零 IO 传输。
16 个 worker × 3 代 = 96 次文件写入——每代 16 个 JSON。这不是"必要的 IO"——这是"忘了用进程间通信替代文件"。
M5 的代码是从 M4 的 we_w0.py 演进而来的。M4 是单进程,写 JSON 是为了持久化。M5 是多进程——JSON 不再是持久化工具,而是进程间通信的弯路。
修复方向:
IO 瓶颈不是性能问题——是架构迁移的不完整。代码还没有从单进程模式切换到多进程模式的工程范式。