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