ASP.NET静态方法静态变量什么时候进驻服务器内存
网站部署时静态方法、静态变量什么时候进驻服务器内存?1.在IIS中设为虚拟目录时?(应该不会吧)
2.第一个用户网站时?
3.第一个用户访问静态方法所在的类时?
还是他就不进内存,地址一直是放网站文件目录的那个磁盘中的存储位置,请指教。
--------------------编程问答-------------------- 转自
saucer(思归) ( ) 信誉:325 2003-09-27 20:58:00 得分:0
static members are associated with the class, not associated with threads, (otherwise, people will call them TLS, :-)), as long as the assembly in which the class belongs to is loaded or not reloaded, the static members will keep their values across requests/sessions....
--------------------编程问答-------------------- 意思就是只要包含静态变量的dll被加载了,静态变量的值就可以访问了 --------------------编程问答-------------------- 哦~感谢,那就是一个用户访问一个带using 这个dll引用的页面时就被加载进内存了。就问题就变成:
1.当这个用户离开,并且没有其他用户在访问时内存就自动释放掉了吧?
2.当第二个用户同时来访问时,发现页面using的这个dll已经被加载进内存就不再另外加载了吧?
3.那样的话好像第一个用户访问要比已经访问着的页面慢很多吧,因为他多了加载dll这一步。
4.静态方法多个用户来同时访问应该没有并发性问题吧?
问的太多了,发现一开始分压的太少,呵呵~~
--------------------编程问答-------------------- 通过观查aspnet_wp.exe进程内存占用情况,发现
第一个问题:当用户离开,这个已经驻进内存的空间永远不会释放掉,除非重启服务器。
第二,三个问题:第二个用户来了不用另外加载,几个人同时访问一张页面aspnet_wp.exe内存占用一点也没变,只是CPU动了一下,所以第一个用户访问就慢很多。
第四个问题,我想应该不会有并发性问题吧,那为什么我见过的基本所有框架的DAL和BUL层的方法都不写成静态方法呢?因为没有并发性问题的话静态方法调用省去实例化的时间,而且他占着的内存人家实例化过的也要占,还多出一个放它地址的空间?为什么在家不用静态方法? --------------------编程问答-------------------- 前3个问题,你已经找到答案了,最后一个,静态的和实例的,后者可以被垃圾回收机制回收,至于回收的时间,基本上不用控制就可以,好像是达到内存的60%自动回收,另外纯静态的东西不符合面向对象的思想,不过是工具类,对扩展和灵活,耦合上是不合适的 --------------------编程问答-------------------- 慢慢消化 --------------------编程问答-------------------- 看这里:ASP.NET静态方法和静态变量什么时候进驻服务器内存
补充:.NET技术 , ASP.NET