我正在研究 .NET Hashtable类,并想尝试各个方面...
- 给定数据集中发生了多少次冲突(重新散列)
- 散列表的扩展对于多线程访问是否安全?
- 我的哈希表的当前负载因子是多少?
我如何试验或学习有关给定哈希表或字典的上述信息
我正在研究 .NET Hashtable类,并想尝试各个方面...
我如何试验或学习有关给定哈希表或字典的上述信息
的线程安全性Hashtable
在MSDN中说明。如果只有一个线程写入 ,这是线程安全的Hashtable
,这必须包括扩展。
现在,使用反射器进行一些挖掘:
负载因子存储在loadFactor
私有字段中,如果您想检查其值,可以使用反射访问该字段。
重演更难。Hashtable
这些不是由 rehash 以可检测方式修改的内部状态,并且只能通过 rehash进行修改。因此,您将不得不在这里查看其他选项,例如使用 Reflector 创建您自己的相同 Hashtable 实现,然后添加一些代码来计算重新散列。如果您这样做,您也可以将负载因子作为属性公开,以使您的生活更轻松。