打开文档导航

与 EAGER 比较及优化经济性

一句话

Pysolate 的 experimental/default-off lanes 比 persistent-interpreter EAGER 多出“只提前做已授权、可丢弃的物理部分”的安全调度机会,但要支付分析、qualification、staging、join、fresh Guest 和 orphan 成本,所以单个 workload 完全可能更慢。

先看一个例子

程序很早就出现一次 800 ms 的不可变数据读取,后面还有 600 ms 代码正在生成。

顺序执行会先等代码完成,再读取数据,总等待接近两段相加。若 Pysolate 能在代码生成期间提前开始读取,最多可以把其中 600 ms 重叠起来。

但系统为了合法地做这件事,还要分析 source、验证 Plan 和参数、保存 staged result、启动 fresh Guest、在 occurrence 处 join,并在分支没走时清理结果。如果这些额外成本加起来超过省下的等待,优化就没有收益。

真实机制

EAGER-style 策略通常保留一个 persistent interpreter,让已生成的完整 statement 尽早执行,或让同一解释器继续持有对象。它可能避免 repeated startup 和 Host→Guest materialization,尤其当 interpreter 状态确实可以安全保留时。

Pysolate 不要求把完整 interpreter state 和后续 authority 一起保留。它可以只移动符合显式 contract 的 physical read/decode/preparation,并把 logical effect 留在原 Guest dynamic occurrence。

收益条件可以写成:

overlappable preparation
>
staging + qualification + join + materialization
+ fresh-start overhead + expected orphan waste

左边是能真正藏进 source generation、其他计算或等待窗口的物理工作。右边不只包含 CPU 时间,还包括:

  • exact Guest analysis 与 Host legality/budget 检查;
  • staged object/observation 的建立和 terminal cleanup;
  • Host→Guest copy 或 materialization;
  • fresh module、workspace attempt 与 claim join;
  • branch-not-taken、earlier exception 或 source drift 造成的 wasted work。

Private-COW 只能降低 fresh-start 的一部分,不是提前执行合法的原因。若 EAGER 已经拥有安全、热的 interpreter 和目标对象,且没有 authority/state isolation 问题,它可能更快。

现有 evidence 只支持分层结论:authored source-prefix fixture 观察到受控 overlap;fixed semantic/prepared-data experiments 展示 bounded opportunity;NumPy result-reuse 的固定 Phase 7 矩阵 40/40 没有 observed break-even。Prepared-data Phase 6 使用 component timing 推导 projected schedule,不是 observed interval trace。这些计数和 natural-stream census 都是绑定各自 producer commit 的 historical artifact,不是当前 94fab78... target 的 live rerun。当前两个 scalar source pass 的 matched synthetic timing 同样是负结果:CSE 慢 14.61%,constant fold 的保留 run 慢 4.49%

为什么重要

技术上: 比较对象从“哪个 runtime 总是更快”变成“哪些 physical work 可以在不移动 logical authority 的情况下安全重排”。这允许系统按 workload 关闭无收益机制。

产品和业务上: Pysolate 的主要价值先是更细的权限和失败语义;性能属于有条件的机会。平台应依据真实 lead、payload、fan-out、materialization 和 miss rate 决定是否启用,而不是承诺普遍省钱或降延迟。

不能推出什么

  • 当前没有 Pysolate 对所有 workload 不慢于 EAGER 的证明。
  • Authored fixture 的 speedup 不代表 natural Agent stream 或生产 workload。
  • Projected critical path 不能写成实际观测到的事件区间。
  • Persistent interpreter 不是天然错误;当状态和 authority 可安全管理时,它可能有更低开销。

术语卡

  • EAGER:尽早执行已生成代码、通常保留 interpreter state 的比较策略。
  • Overlap:让两段可并行等待的物理工作在时间上重叠。
  • Fresh-start overhead:创建、初始化和清理新 Guest 的成本。
  • Orphan waste:提前结果最终未被 logical occurrence 消费的成本。
  • Universal dominance:对所有 workload 都不差的强性能结论;当前没有该结论。

继续阅读