首页 新闻 会员 周边 捐助

【求助】C# 能查看字典使用了多少内存空间么?

0
[已关闭问题] 关闭于 2014-10-18 20:17

来个奇葩的问题,在实用字典时,能不能查看,字典使用了多少内存空间,

如,

当我添加了一千条内容时,字典使用了多少内存,

当我添加了一万条内容时,字典使用了多少内存?

Srouni的主页 Srouni | 初学一级 | 园豆:9
提问于:2014-10-10 15:09
< >
分享
所有回答(4)
0

最无脑的办法,你在控制台应用程序里就弄这件事,运行时看进程占用内存大小。

Cherbim | 园豆:323 (菜鸟二级) | 2014-10-10 15:52
0

1:对于托管对象是没有办法直接获取到一个对象所占的内存大小。
2:非托管对象,可以使用Marshal.SizeOf
3:对内置类型,如int,long,byte等使用sizeof

Firen | 园豆:5385 (大侠五级) | 2014-10-10 15:53
0

 你可以查看程序当前占用内存

添加内容后,再看一下占用内存。差值就是字典的内存占用了

吴瑞祥 | 园豆:29449 (高人七级) | 2014-10-10 17:56
0

自己估算下吧。。。大概能知道

56180825 | 园豆:1749 (小虾三级) | 2014-10-10 18:53

假设我有两个字典

一个字典,Key 是 int, Value 是 bool,

一个字典,Key 是 int, Value 是 List<int> 。

怎么估算?

 

支持(0) 反对(0) Srouni | 园豆:9 (初学一级) | 2014-10-10 19:49

@Srouni: int 4 bool 2,N*6个 N比你字典的LENGTH大点,按上限算

支持(0) 反对(0) 56180825 | 园豆:1749 (小虾三级) | 2014-10-10 21:19

@Srouni: 一个字典,Key 是 int, Value 是 bool,这种类型本身内存只在扩容的时候才增加,也就是说没到他上限的时候你新增几个内存是不变的

支持(0) 反对(0) 56180825 | 园豆:1749 (小虾三级) | 2014-10-10 21:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册