2010-08-25 28 views
3

当前在我们的应用程序中,我们有一个ApplicationConfiguration类。它基本上只是一个静态类,其中const值指定了某些应用程序全局配置选项。这些值中的一些很少会改变,只会被放入优雅/清洁的配置中。 。它目前硬编码为100,这对所有的实际应用都很好。 - >与常量字段相比,web.config中存储值的性能是否会受到影响?

虽然这些值中的一些值需要在生产和开发之间有所不同。所以我正在考虑让这个类只是Web.config的封装。这些值在我们的代码库中被多次检查。如果我将这些从const更改为从Web.config读取的只读getter,这是否会影响编译器优化或使应用程序以任何方式变慢?

回答

1

在应用程序启动时,Web.config值将被读入内存中,并一直保留到应用程序结束。所以,这里没有真正的性能差异 - 没有额外的文件I/O反复读取web.config。

当您需要更改其中一个配置选项的值时,两种方法之间的一个主要区别就发生了。更改web.config中的值相对比较简单,甚至可能不需要重新启动应用程序(取决于它的配置方式)。

要更改常量的值,当然必须重新编译并重新部署代码。这可能不是一个微不足道的努力。

+0

重新部署对我们来说不是问题。我们可以在大约20-30分钟内完成重新部署,我们的应用程序仅在美国工作时间(上午8点至下午6点左右)由某些人使用,所以我们有时间让应用程序离线。这不是问题。 – Earlz 2010-08-25 19:31:09

+0

这是20-30分钟,相比<30秒来更改web.config,以及错误地执行部署步骤之一的风险。但是这是生产 - 可能需要新版本(即部署)才能进行任何更改。 – Lachlan 2010-08-25 19:53:09

+0

那么,你唯一需要做的就是重新上传网站的程序集文件,这个文件在FireFTP中需要大约15秒。 – Earlz 2010-08-25 20:08:55

相关问题