12 个版本
0.2.1 | 2022 年 7 月 18 日 |
---|---|
0.1.9 | 2022 年 6 月 26 日 |
0.1.6 | 2021 年 9 月 26 日 |
0.1.5 | 2020 年 7 月 28 日 |
0.1.1 | 2018 年 2 月 12 日 |
#1433 在 解析器实现 中
240KB
2.5K SLoC
lcov-util
用于快速操作和分析 LCOV 跟踪文件的实用命令。
LCOV 是覆盖率测试工具 gcov 的图形前端。它收集多个源文件的 gcov 数据,并将它们存储在名为 "tracefile" 的文件中。
此 crate 的目的是比原始 LCOV Perl 实现更快地操作 LCOV 跟踪文件。
安装
cargo install lcov-util
性能
LCOV 跟踪文件合并
比较 3 个程序合并 LCOV 跟踪文件执行情况
lcov 1.16
: LCOV 最新发布版本lcov master
: LCOV 最新开发版本lcov-merge
:来自lcov-util
v0.2.0 的lcov-merge
可执行文件
使用 3 个数据集(由 mkinfo
工具生成)
- 小型:合并 5 个小型跟踪文件(2 个测试,5 个源文件)
- 中型:合并 5 个中型跟踪文件(3 个测试,50 个源文件)
- 大型:合并 5 个大型跟踪文件(2 个测试,500 个源文件)
小型 | 中型 | 大型 | |
---|---|---|---|
lcov1.16 |
0.22s | 2.41s | 21.69s |
lcov master |
0.23s | 2.30s | 21.34s |
lcov-merge |
0.01s | 0.21s | 2.73s |
在这个基准测试中,lcov-merge
的速度比 lcov 1.16
/ lcov-master
快 10-20 倍。
- 环境
- Arch Linux (5.10.16.3-microsoft-standard-WSL2)
- AMD Ryzen 9 5950X
有关详细信息,请参阅 benchsuite
目录。
最低支持的 Rust 版本 (MSRV)
最低支持的 Rust 版本是 Rust 1.56.1。在任何给定时间都支持至少最后 3 个稳定的 Rust 版本。
当 crate 处于预发布状态(0.x.x)时,它可能在补丁版本中提高 MSRV。一旦 crate 达到 1.x,任何 MSRV 的提升都将伴随着一个新的次要版本。
许可证
本项目许可协议为以下之一
- Apache License, Version 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 协议(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交用于包含在 lcov 中的任何贡献,将按照上述方式双授权,不附加任何额外条款或条件。
依赖项
~1.6–2.2MB
~34K SLoC