log/TEST.md

1.4 KiB

日志性能测试报告

测试环境

  • 操作系统: darwin
  • 架构: amd64
  • CPU: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz

基准测试结果 (v1.0.3)

测试用例 迭代次数 耗时 (ns/op) 内存分配 (B/op) 分配次数 (allocs/op)
BenchmarkLogger_RequestLog_Realistic 2,324,065 544.1 72 2
BenchmarkLoggerInfo 122,059 9,706 - -
BenchmarkLoggerAsyncConcurrent 127,830 8,773 - -

版本对比评估

版本 机制 耗时 (ns/op) 易用性
v1.0.1 手动 Reset ~270 较低 (需编写大量样板代码)
v1.0.2 自动化 Reset ~475 极高 (嵌入 BaseLog 即可)
v1.0.3 参数封装与解耦架构 ~544 极高 (核心框架与业务结构完全分离)

总结

  • 性能评估: v1.0.3 在核心日志记录上保持高性能。应用端自定义结构与框架对象池的结合被证明是高效的。
  • 解耦架构: extra.go 中的示例代码已被注释,成功将业务日志结构的定义权移交给应用层。框架仅保留最核心的异步写入和对象池管理能力。
  • 内存效率: 持续保持极低分配。
  • 最佳实践: 引导应用通过定义局部结构体并封装 Logger 扩展方法来记录日志,这不仅符合 Go 的工程规范,也极大地提升了系统的可维护性。