Performance 读取注册表项的性能?
我想知道通过标准C#库从Windows注册表读取注册表值需要多长时间(毫秒)。在本例中,我正在阅读一些代理设置 我应该期望什么数量级的值? 是否有好的基准数据可用 我正在运行WS2k8 R2 amd64。奖励点:操作系统sku/版本对此度量的影响有多大Performance 读取注册表项的性能?,performance,registry,Performance,Registry,我想知道通过标准C#库从Windows注册表读取注册表值需要多长时间(毫秒)。在本例中,我正在阅读一些代理设置 我应该期望什么数量级的值? 是否有好的基准数据可用 我正在运行WS2k8 R2 amd64。奖励点:操作系统sku/版本对此度量的影响有多大 using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software/Copium")) { return (string)registryKe
using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software/Copium"))
{
return (string)registryKey.GetValue("BinDir");
}
陈雷蒙的这篇博文应该很有帮助:
我想补充一点,一般来说,不建议在C#apps的注册表中存储设置、使用持久化存储、配置文件或类似的东西。处理注册表时存在与权限相关的问题。阅读通常不是一个问题,但如果你想坚持下去,事情就会变得棘手,尤其是UAC和更新的操作系统,它们会对事情进行影子复制。我不能引用数字,因为我不知道。但在刚刚阅读了30页关于注册中心的书后,以下我不知道的值得注意的事情变得清晰起来
- 注册表是事务性的,具有故障保护以防止损坏。这会影响性能。因为事务级别是读提交的,所以读不应该被写阻塞,所以它们应该是性能良好的
- 注册表缓存在内存中(不管怎样,经常使用的值),因此如果您经常访问一组键,那么在第一次命中后,性能应该保持稳定