
SERVICE PHONE
363050.com发布时间:2025-06-28 09:38:23 点击量:
哈希游戏,哈希博彩平台,比特币哈希游戏,区块链博彩,去中心化博彩平台,可验证公平平台,首存送88U,虚拟币哈希娱乐
应用场景:在使用memcached时,有些作为key的字符串中会出现中文,需要为该字符串生成Hash值,然后将该hash值作为缓存key。
想在博问中问一下有没有比String.GetHashCode()计算速度更快的方法。
原生的GetHashCode方法主要考虑的是分布均匀,即使几个差不多的字符串,hash值也能均匀分布。修改算法可以提高hash值得计算速度,但是对于有规律的字符串,分布未必有原生的均匀。造成对hash表的查找性能降低,反而得不偿失。毕竟hash值基本上就是为hash表准备的。
为什么不用Guid.NewGuid();生成的值作为Key呢?这个更快更方便。不知道对否?
@dudu: 重复值概率很大了。不过无所谓。重复就重复,因为字符串相同,所以重复了也表示一个意思。
@dudu: 对字符串相同gethashcode肯定也相同,同理。如果hash值相同了,字符串即使新的,也指向到以前的字符串。这个貌似之前一直被人说为gethashcode的一个坑。
@dudu: 这个上面有过讨论。第72楼的总结。还有一些验证重复的方法。
将中文转成BASE64的编码方式作为key使用,这样速度应该也是可以的,而且也不会导致重复。
貌似很不建议使用的就是String.GetHashCode()了吧,记得有哪里说过,不同版本的framework 生成的hashcode是不一样的,这是灾难性的事情啊。