包含unordered_map的结构的字节大小
Size in bytes of a structure containing unordered_map
需要找到以字节为单位的确切大小,由我实现的树数据结构占用。节点结构如下
struct Node
{
int word;
int count;
unordered_map<int, Node*> map;
}node;
我一直在做的是size(int)*2(对于单词和计数)+ map.bucket_count() * (sizeof(int) + sizeof(Node*)),并对每个节点重复执行此操作。如果我忽略了unordered_map中的存储元素开销,这是正确的方法吗?
另外,如果我是正确的map.bucket_count()给出了当前分配的桶的数量,包括预分配的桶。我应该使用map.size()而不是忽略预分配的桶吗?
或者使用MemTrack之类的工具来查找所使用的内存,而不是所有这些?
或者使用MemTrack之类的工具来查找所使用的内存,而不是所有这些?
是的。从外部无法得知unordered_map
或其他复杂、不透明的对象占用了多少内存,一个好的内存分析器可能还会显示内存分配器本身占用了多少开销。
相关文章:
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- DNS 查询格式标头结构中的小字节序问题
- 哪些值存储在对齐的结构/类对象的填充字节中
- 为什么这个结构需要 24 个字节
- 正在转换结构数据的字节序
- 在C++中更改整个结构的字节序
- 使用字节数组具有单字节对齐方式的结构是否安全
- 在字节数组上转换具有虚函数的结构是否安全?
- 为什么标准库不以无锁的方式为 8 字节以下的结构实现 std::atomic?
- 将结构中的字节数组传递给 com 对象
- 为什么在未由语言本身定义的结构字节中的位字段顺序
- C 将5个字节结构与Cacheline保持一致
- C++结构到字节*引发错误
- 填充C 中C结构的填充字节?(不关心结构包装!)
- 将结构添加到字节向量,然后添加另一个
- uint12 结构中的字节序
- C 在结构中添加所有字节
- 具有3字节块的序列化C 结构
- 使用指针访问结构的各个字节
- MSVC 2008 16字节结构成员对齐奇怪