web应用程序中静态变量在内存方面的缺点是什么?表演
本文关键字:缺点 是什么 表演 方面 内存 应用程序 静态 变量 web | 更新日期: 2023-09-27 18:03:13
我在global .asax中定义了一个静态变量,我想在我网站的所有网页中使用这个变量。
所以我只是想知道在web应用程序中,全局静态变量在内存和性能方面是否有任何缺点?
在内存和性能方面,应用程序变量比全局静态变量有什么特别的优势吗?
假设您正在尝试缓存一个简单的值,在内存或性能方面没有真正的缺点,但这取决于您想要做什么。
如果您需要一个方便的地方来保存编译时已知的只读值,那么使用const
可能更好。
如果你想缓存一些简单的全局值,比如作为字符串的应用程序版本号,那么把它放在静态中是完全可以的。
您应该意识到的一件事是Application对象(即。Global.asax)是而不是单例。应用程序可能有多个实例,例如,当IIS决定是时候回收应用程序池时。当然,应用程序实例将在不同的appdomain中运行,所以静态变量也会有多个实例。
因此,永远不要在应用程序对象上使用静态变量来存储运行时修改的信息。不能保证信息在请求之间持久化。