gpt4 book ai didi

.net - 字典的关键性能

转载 作者:行者123 更新时间:2023-12-02 17:59:04 25 4
gpt4 key购买 nike

string键比 int 更快输入Dictionary<,>

最佳答案

没有。首先,Dictionary [更新] 使用 key 的哈希码在其内部存储中查找它们 - 而不是 key 。 Hashcode 是一个int。对于int,它只是int的值,对于string它必须生成。

因此使用 int稍微更快。

<小时/>

事实上,为字符串生成哈希码是一个相当复杂的过程(使用 Reflector 的片段)[希望这不会被视为侵犯版权,因为它不是]:

fixed (char* str = ((char*) this))
{
char* chPtr = str;
int num = 0x15051505;
int num2 = num;
int* numPtr = (int*) chPtr;
for (int i = this.Length; i > 0; i -= 4)
{
num = (((num << 5) + num) + (num >> 0x1b)) ^ numPtr[0];
if (i <= 2)
{
break;
}
num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr[1];
numPtr += 2;
}
return (num + (num2 * 0x5d588b65));
}

关于.net - 字典的关键性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5743474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com