跳转至

结构化日志性能测试

zerodep structlog 与 structlog 在四个场景下的性能对比。

测试环境

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

实现对比

实现 文件/包 说明
zerodep structlog.py 仅依赖标准库的结构化日志
structlog (参考库) 功能丰富的结构化日志库

性能对比(均值)

测试项 zerodep structlog 倍数
简单日志 10.2 μs 14.0 μs 快 1.4x
绑定上下文日志 12.7 μs 19.9 μs 快 1.6x
JSON 渲染 10.0 μs 12.4 μs 快 1.2x
绑定 + 日志 11.5 μs 23.0 μs 快 2.0x

要点总结

  • 全场景快 1.2-2.0 倍 —— zerodep 在所有场景下均优于 structlog,上下文绑定操作优势更大。
  • 简单日志和 JSON 渲染场景下两者性能接近(约 10-14 μs),zerodep 快约 1.2-1.4 倍。
  • 上下文操作优势最大 —— 绑定上下文日志(1.6x)和绑定+日志(2.0x)加速比最高,structlog 的处理器链和包装开销更明显。
  • zerodep 无需任何 pip 依赖 —— 仅使用标准库 jsonloggingiotime

自行运行

pip install pytest pytest-benchmark structlog
pytest structlog/test_structlog_benchmark.py --benchmark-only -v

最新 CI 结果

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