#stack #tuning #vec #small-vec #small #vector

no-std smallvectune

SmallVec 包装器,可输出容量信息

1 个不稳定版本

使用旧的 Rust 2015

0.0.1 2018 年 9 月 13 日

#19#tuning

MIT/Apache

18KB
434

调整你的 SmallVecs!

这是一个正在进行中的项目。欢迎提交问题和拉取请求!

你可以使用这个crate来获取关于你的代码如何使用SmallVec的信息。它所做的是记录所有 SmallVec 构造、调整大小和销毁的日志,按数组大小排序。

日志中的每一行由以下组成:<item size>;<array size>;[+/-];<capacity>,其中第一个是数组项类型的大小,第二个是数组大小(我们可以用这个来区分一个应用程序中的各种 smallvec 使用),第三个是+表示新分配,-表示释放,第四个是最终容量。

例如,创建一个 u8 类型的小型向量,扩展和丢弃它可能创建以下日志(此处为了清晰度进行了注释)

1;1;+;1       # create
1;1;+;100     # extend (allocate+deallocate)
1;1;-;1
1;1;-;100     # drop

许可证

用法

在你的 Cargo.toml 中,将你的 smallvec 依赖项替换为 smallvectune。然后你需要将 use smallvectune::SmallVec 替换为 smallvec::SmallVec。在 main 方法中调用 let _log = smallvectune::with_log() 也是一个好主意,否则一些条目可能会丢失。

调用你的代码时,你必须将 SMALLVECTUNE_OUT 环境变量设置为一个有效的写入路径。日志将在这里写入。

许可证

此项目受 Apache/2 或 MIT 许可证的约束,具体取决于您的选择。所有贡献也都在同一许可证下。

依赖项

~2MB
~30K SLoC