最无脑的办法,你在控制台应用程序里就弄这件事,运行时看进程占用内存大小。
1:对于托管对象是没有办法直接获取到一个对象所占的内存大小。
2:非托管对象,可以使用Marshal.SizeOf
3:对内置类型,如int,long,byte等使用sizeof
你可以查看程序当前占用内存
添加内容后,再看一下占用内存。差值就是字典的内存占用了
自己估算下吧。。。大概能知道
假设我有两个字典
一个字典,Key 是 int, Value 是 bool,
一个字典,Key 是 int, Value 是 List<int> 。
怎么估算?
@Srouni: int 4 bool 2,N*6个 N比你字典的LENGTH大点,按上限算
@Srouni: 一个字典,Key 是 int, Value 是 bool,这种类型本身内存只在扩容的时候才增加,也就是说没到他上限的时候你新增几个内存是不变的