当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,