您现在的位置是:首页 > 文章详情

tklog 0.2.4 — Rust 高性能日志库,性能显著提高

日期:2024-10-22点击:151
tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数设置
  1. 简介
  2. Github地址
  3. 仓库地址
  4. rust日志库性能压测 — log4rs + tracing + tklog

v0.2.4 版本更新

该版本主要更新为:

  • 在v0.2.3更新内容的基础上,新增支持日志内容的自定义格式化。通过  set_body_fmt 自定义输出日志内容。
  • 优化性能,性能提高30%-50%。

通过 set_body_fmt 函数设置日志标识与时间格式

示例: 通过set_body_fmt 设置不同日志级别输出不用颜色的日志

 fn testlog() { LOG.set_level(LEVEL::Trace).set_attr_format(|fmt| { fmt.set_body_fmt(|level, body| { //处理body的末尾换行符 let trimmed_body = if body.ends_with('\n') { format!("{}{}", body.as_str()[..body.len() - 1].to_string(), "\x1b[0m\n") } else { format!("{}{}", body, "\x1b[0m\n") }; match level { LEVEL::Trace => format!("{}{}", "\x1b[34m", trimmed_body), //蓝色 LEVEL::Debug => format!("{}{}", "\x1b[36m", trimmed_body), //青色 LEVEL::Info => format!("{}{}", "\x1b[32m", trimmed_body), //绿色 LEVEL::Warn => format!("{}{}", "\x1b[33m", trimmed_body), //黄色 LEVEL::Error => format!("{}{}", "\x1b[31m", trimmed_body), //红色 LEVEL::Fatal => format!("{}{}", "\x1b[41m", trimmed_body), //背景红 LEVEL::Off => "".to_string(), } }); }); trace!("trace!", "this is sync log"); debug!("debug!", "this is sync log"); info!("info!", "this is sync log"); warn!("warn!", "this is sync log"); error!("error!", "this is sync log"); fatal!("fata!", "this is sync log"); thread::sleep(Duration::from_secs(1)) }

执行结果:


性能压测数据

 

log_benchmark

测试编号 最小时间 (µs) 最大时间 (µs) 平均时间 (µs) 变化百分比 (%) p 值
1 2.3949 2.4941 2.4428 -0.5586% 0.14
2 2.3992 2.4632 2.4307 -12.388% 0.00
3 2.4525 2.5632 2.5059 -10.548% 0.00
4 2.5650 2.6775 2.6194 -3.5311% 0.79

mod_benchmark

测试编号 最小时间 (µs) 最大时间 (µs) 平均时间 (µs) 变化百分比 (%) p 值
1 2.1946 2.2718 2.2325 -2.5723% 0.96
2 2.2126 2.2920 2.2508 -11.895% 0.00
3 2.2603 2.3693 2.3113 -12.539% 0.00
4 2.4908 2.6440 2.5655 -1.3617% 0.29

2. 总结统计

  • log_benchmark
    • 最小时间: 2.3949 µs
    • 最大时间: 2.6775 µs
    • 平均时间: 2.5160 µs
    • 变化幅度: 从 -0.5586% 到 -12.388%
    • p 值: 大部分测试显著性强(p < 0.05)。
  • mod_benchmark
    • 最小时间: 2.1946 µs
    • 最大时间: 2.6440 µs
    • 平均时间: 2.3430 µs
    • 变化幅度: 从 -2.5723% 到 -12.539%
    • p 值: 大部分测试显著性强(p < 0.05)。

性能统计数据(每次响应时间)

  1. 最小时间: 2.1946 µs
  2. 最大时间: 2.6775 µs
  3. 平均时间: 2.3946 µs

 


性能优化过程中的火焰图变化

 

 

可以看到,tklog的性能在优化过程中有效提高。

原文链接:https://www.oschina.net/news/317125/tklog-0-2-4-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章