2010-01-06 59 views
0

我正在为我们的遗留应用程序优化性能。它使用VC++ 2008,OS是WindowsXP或更高版本。如何提高将数据写入注册表的性能?

在安装过程中,它将解析一个文件并将有关该文件的一些信息写入注册表中。 随着文件数量的增加,安装需要很长时间。

我尝试评论写入注册表的代码,它会大幅缩短安装时间。 但我们无法删除注册表操作。

在旧代码中,它将使用RegCreateKey和RegSetValueEx来设置注册表数据。

因此,我尝试另一种方法,我将数据写入文件,然后调用像“regedit/s/c aaa.tmp”这样的函数来导入文件。 它会减少一些时间,但不显着。

你可以尝试一下吗? 非常感谢,

+1

没有看到实际的代码,任何人应该如何帮助你? – 2010-01-06 08:19:06

+0

该代码复杂,用于我们的商业应用程序,对不起,我不能发布它。 – sagasw 2010-01-06 08:41:25

回答

1

如果你将数据写入注册表的足够频繁的性能问题给您的用户,那么你做太多的是,数据更应被写进简单的文件。

+0

该应用程序是一个传统应用程序,我被要求提高性能。 我不能将注册表中的选项更改为其他,即使我也想。 而且键/值也应该与以前一样。因为它会被其他客户使用。这是问题所在。 – sagasw 2010-01-06 08:44:28

0

注册表I/O从来没有被很好地优化过,因为它并不意味着经常进行。但是,使用诸如RegClean之类的产品来减少其注册管理机构的规模,您的客户可能会受益不浅。

0

您可能使用太多按键或打开和关闭太多次。将所有值存储在一个密钥下并保持打开状态直至完成写入,可能会提高性能。