跳转至

调度器性能测试

zerodep scheduler 与 APSchedulercroniterschedule 的性能对比。

测试环境

  • CPU: x86_64 Linux
  • Python: 3.12
  • 工具: pytest-benchmark 5.2.3(报告均值)
  • 对标库: APScheduler 3.11.2, schedule 1.2.2, croniter 6.2.2
  • 最后更新: 2026-04-21

实现对比

实现 文件/包 说明
zerodep scheduler.py 仅依赖标准库的进程内调度器
APScheduler (参考库) 全功能调度库
croniter (参考库) Cron 表达式解析与迭代
schedule (参考库) 轻量级进程内调度

性能对比(均值)

测试项 zerodep croniter APScheduler schedule 倍数
Cron 解析(5 条表达式) 43.9 μs -- 182.8 μs 不适用 快 4.2x
下次触发时间(5 条表达式) 53.2 μs -- 132.6 μs 不适用 快 2.5x
批量下次触发(100 次迭代) 678.6 μs -- 974.8 μs 不适用 快 1.4x
任务添加开销(100 个任务) 530.9 μs 不适用 不适用 561.5 μs 持平

要点总结

  • Cron 解析比 APScheduler 快 4.2 倍,得益于精简的集合式解析器。
  • 下次触发时间计算快 2.5 倍,zerodep 使用直接的 datetime 算术,无需时区转换开销。
  • 批量计算(100 次连续触发时间)在规模化场景下仍保持速度优势(快 1.4 倍)。
  • 任务添加开销schedule 相当(持平),两者都采用轻量设计。
  • zerodep 无需任何 pip 依赖——仅使用标准库 threadingasynciodatetimeinspectlogging

自行运行

pip install pytest pytest-benchmark APScheduler croniter schedule
pytest scheduler/test_scheduler_benchmark.py --benchmark-only -v

最新 CI 结果

每次发版时通过 Benchmark CI 自动更新。