And*_*rej 7 c# performance dictionary
我将在.NET项目中使用Dictionary来存储大量对象.因此,我决定使用GUID字符串作为键,以确保每个对象的唯一键.
GUID(或更大的)之类的大键是否会降低Dictionary的性能,例如通过其键检索对象?
谢谢,Andrej
Ada*_*son 14
我建议使用实际Guid而不是字符串表示Guid.是的,在比较字符串时,长度确实会影响所需的操作数,因为它必须逐个字符地比较字符串(至少是这样;这是禁止任何特殊选项IgnoreCase).实际Guid将只给你16个字节进行比较,而不是最小的32个字节string.
话虽这么说,你很可能不会注意到任何不同......过早的优化和所有这些.我只想去的Guid关键,因为这数据是什么是.
关于检索值的对象的实际大小是无关紧要的.查找值的速度更依赖于传入IEqualityComparer<T>实例中两种方法的速度
编辑
很多人使用String作为说明更大的对象大小降低查找性能的理由.出于几个原因,必须采取一些盐.
IEqualityComparer<String>的方式编写不同的字符串长度.