跳转至

重试性能测试

zerodep retry 与 tenacity 的性能对比。

测试环境

  • CPU: x86_64 Linux
  • Python: 3.12
  • 工具: pytest-benchmark 5.2.3(报告均值)
  • 对标库: tenacity 9.1.4
  • 最后更新: 2026-04-21

实现对比

实现 文件/包 说明
zerodep retry.py 仅依赖标准库的装饰器式重试
tenacity (参考库) 功能丰富的重试库

性能对比(均值)

测试项 zerodep tenacity 倍数
装饰器开销 0.5 μs 19.8 μs 37.3x 更快
含 2 次失败的重试 246.9 μs 322.1 μs 1.3x 更快
退避计算 5.6 μs 14.6 μs 2.6x 更快

要点总结

  • 装饰器开销比 tenacity 低约 37 倍,适合高频调用场景。
  • 含实际重试的场景下仍快约 1.3 倍,zerodep 避免了 tenacity 的统计跟踪和等待链抽象开销。
  • 退避计算快约 2.6 倍,直接算术运算对比 tenacity 的可组合等待对象管道。
  • zerodep 无需任何 pip 依赖——仅使用标准库 timefunctoolsrandomasyncioinspect

自行运行

pip install pytest pytest-benchmark tenacity
pytest retry/test_retry_benchmark.py --benchmark-only -v

最新 CI 结果

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