在Web应用程序中,静态变量在内存和性能方面的缺点是什么?



我在global .asax中定义了一个静态变量,我想在我网站的所有网页中使用这个变量。

所以我只是想知道在web应用程序中,全局静态变量在内存和性能方面是否有任何缺点?

在内存和性能方面,应用程序变量比全局静态变量有什么特别的优势吗?

假设您正在尝试缓存一个简单的值,在内存或性能方面没有真正的缺点,但这取决于您想要做什么。

如果您需要一个方便的地方来保存编译时已知的只读值,那么使用const可能更好。

如果你想缓存一些简单的全局值,比如作为字符串的应用程序版本号,那么把它放在静态中是完全可以的。

您应该意识到的一件事是Application对象(即。Global.asax)是而不是单例。应用程序可能有多个实例,例如,当IIS决定是时候回收应用程序池时。当然,应用程序实例将在不同的appdomain中运行,所以静态变量也会有多个实例。

因此,永远不要在应用程序对象上使用静态变量来存储运行时修改的信息。不能保证信息在请求之间持久化。

最新更新