tklog 0.2.4 — Rust 高性能日志库,性能显著提高
tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数设置
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)。
性能统计数据(每次响应时间)
- 最小时间: 2.1946 µs
- 最大时间: 2.6775 µs
- 平均时间: 2.3946 µs
性能优化过程中的火焰图变化
可以看到,tklog的性能在优化过程中有效提高。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Rufus 4.6 发布,USB 启动盘制作工具
Rufus 4.6 现已发布,更新内容如下: 添加新setup.exe包装器以绕过 Windows 11 24H2 就地升级限制 将时区添加到区域选项复制 将本地帐户密码默认设置为不过期 修复尝试写入压缩 VHD images 时的错误 修复从 PowerShell 命令行调用 Rufus 时出现的错误 改进已撤销的 UEFI bootloaders 检查以支持Linux SBAT、Windows SVN和cert DBX 改进对ReactOSboot media 的支持 详情可查看:https://rufus.ie/zh/ Rufus 是一款格式化和创建 USB 启动盘的辅助工具,适用于以下场景: 需要将可引导 ISO (Windows、Linux、UEFI 等) 刻录到 USB 安装媒介的情况 需要处理未安装操作系统的设备的情况 需要在 DOS 环境下刷写 BIOS 或其他固件的情况 需要运行低级工具的情况
- 下一篇
XL-LightHouse 2.2.8 发布,开源、免费、可商用的数据指标管理系统
更新内容: 1、增加了Http数据上报和数据查询API接口;2、增加了调用方管理功能,对外API统一使用调用方进行授权验证,并可以在Web端进行限流管理、查看各接口的调用情况等;3、修复了limit指标历史版本展示数据丢失的问题;4、将各列表页按钮的交互方式由打开新标签页统一调整为当前页面,并增加后退按钮,点击返回列表页时,列表页原来的分页和筛选数据可以保持,进一步提升Web端的交互体验;5、修复了个别样式问题;6、优化文档,增加了更详细的HelloWorld操作示例;7、增加了对商业版JS页面引用功能的底层数据兼容;8、增加前端编译时的内存参数设置,避免linux系统上编译项目时出现内存溢出的问题;9、增加了maven打包编译时对jvm版本的验证; 概述 XL-LightHouse 是针对繁杂的数据统计需求而开发的一套集成了数据写入、数据运算和数据可视化等一系列功能,支持超大数据量,支持超高并发的【通用型流式大数据统计系统】。 XL-LightHouse 目前已涵盖了各种流式数据统计场景,包括 count、sum、max、min、avg、distinct、topN/lastN 等多种...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果