我构建了个hashtable,是否能存入高级缓存,以提高程序查询速度? hashtable缓存 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说的是CPU的L1/L2/L3吧,L3一般都在MB级别。string不是值类型,空间可能是随机不可控的,极端情况一个string占用一个内存块。Dictionary<string, double>数组空间包括 int+int+int+string+double,每个元素占用24/28B(除了字符串值本身)。那么就可以计算一下,1MB的L3最多包含大概3W个元素(包括未使用的)。由于字符串空间不可控,即使其他部分都能全部命中,字符串这部分还是会命中失败造成性能瓶颈。当然字符串也可以让它连续可控的,比如你可以把所有的字符串拼接成一个大字符串,定义一个subString的结构体,使用Dictionary<subString, double>。 程序集“xxx”中的类型“yyy”的方法“zzz”没有实现。 C#如何实现单击TABLE行后,使本表的该行颜色变掉 用正则匹配结果后,写入文本文件中 大家好,哪有.NET For WinForm的树型控件下载? 请教:C#如何连接Mysql呢? (求助)动态创建textbox的小问题(20分) 求助:怎么得截断字符 winform 小问题 获得“我的文档”的目录? 为何我VS.net无法编写web程序。 listview列宽如何自动调整大小? C# 从M选择N个组合
string不是值类型,空间可能是随机不可控的,极端情况一个string占用一个内存块。
Dictionary<string, double>数组空间包括 int+int+int+string+double,每个元素占用24/28B(除了字符串值本身)。
那么就可以计算一下,1MB的L3最多包含大概3W个元素(包括未使用的)。
由于字符串空间不可控,即使其他部分都能全部命中,字符串这部分还是会命中失败造成性能瓶颈。
当然字符串也可以让它连续可控的,比如你可以把所有的字符串拼接成一个大字符串,定义一个subString的结构体,使用Dictionary<subString, double>。