8 个版本
| 0.1.7 | 2024 年 4 月 2 日 |
|---|---|
| 0.1.6 | 2024 年 3 月 17 日 |
| 0.1.5 | 2024 年 1 月 1 日 |
| 0.1.4 | 2023 年 12 月 9 日 |
| 0.1.3 | 2023 年 11 月 29 日 |
#466 在 开发工具 中
29,993 每月下载量
用于 5 个 软件包(直接使用 4 个)
31KB
609 行
TypeSize
一个用于获取值的总内存使用量的准确估计的库。
请参阅 docs.rs 上的文档。
lib.rs:
类型大小
一个用于获取值的总内存使用量的准确估计的库。
该库的目标是生成尽可能准确的估计,然而,由于没有深度集成到整个生态系统中,这是不可能的。因此,实际目标是获取“足够接近”的估计,以便在程序中获得内存使用的感觉。如果可以改进任何内置的 TypeSize 实现,那么将非常欢迎 PR。
该库的一个示例用法是将所有要测量的类型递归地包装在 derive::TypeSize 衍生宏中,并且对于任何执行自己的堆分配的类型,需要手动实现 TypeSize 并覆盖 TypeSize::extra_size 方法。
MSRV
此软件包的最低支持 Rust 版本为 1.65,提高此版本被认为是不兼容的。
这是没有任何库支持功能的,因为这些库可能需要更高的 MSRV。
功能
std: 为HashMap和HashSet实现TypeSize,默认启用。details: 添加TypeSize::get_size_details和TypeSize::get_collection_item_count以获取结构体类型的字段分解。
库支持
dashmap: 为DashMap实现TypeSize。arrayvec:为任意大小的ArrayVec和ArrayString实现TypeSize。simd_json:为OwnedValue和StaticNode实现TypeSize,启用 halfbrown。halfbrown:为SizedHashMap实现TypeSize,启用 hashbrown。extract_map_01:为extract_map::ExtractMap实现TypeSize。parking_lot:为parking_lot::Mutex和parking_lot::RwLock实现TypeSize。serde_json:为serde_json::Value和serde_json::Map实现TypeSize。mini_moka:为mini_moka::unsync::Cache实现TypeSize,如果启用了dashmap,则还实现mini_moka::sync::Cache。hashbrown:为hashbrown::HashMap实现TypeSize。secrecy:为Secret实现TypeSize。chrono:为任何chrono::TimeZone的chrono::DateTime实现TypeSize。nonmax:为所有nonmax类型实现TypeSize。time:为time::OffsetDateTime实现TypeSize。url:为TypeSize实现了url::Url。
依赖项
~0.3–8MB
~69K SLoC