页面缓存与内存的消耗
问:
aspx页面缓存后, 内存消耗会因为访问者的数量增加而增加吗?
把一个aspx网页进行了缓存后, 当有1000个访问者同时访问时, 服务器的内存使用是多少?
如果是1,000,000个访问者同时访问呢?
把一个aspx网页进行了缓存后, 当有1000个访问者同时访问时, 服务器的内存使用是多少?
如果是1,000,000个访问者同时访问呢?
就是说, aspx页面缓存后, 内存消耗会因为访问者的数量增加而增加吗? 明白我说什么吗?
答:
asp.net页面缓存可以根据不同条件对同一页面保留不同缓存页。
比如同样对于A.aspx页面,假设设置为根据URL上的参数X的不同而缓存不同版本页面,则当X=1时系统将保留1份缓存,当X=2时,系统再保留一份缓存,这样系统中对于A页面有2个缓存,占用2份内存,但是对于所有访问X=1和X=2的A页面的所有用户请求,不管是 1,000个还是100,000,000个,都只是分别访问内存中的这2份缓存中的其中一个而已,不会再增加额外的内存消耗,除非有一个人请求X=3的页面,当有人申请X=3的页面时,系统会再增加一个针对X=3的缓存,从而系统中保留了3份A页面缓存。
页面缓存只会根据设置的条件的不同而缓存多份页面,而不是根据请求的数量。对于条件的多个值会缓存多份页面,但是对于同一个条件的请求,总是使用同一份缓存。
比如同样对于A.aspx页面,假设设置为根据URL上的参数X的不同而缓存不同版本页面,则当X=1时系统将保留1份缓存,当X=2时,系统再保留一份缓存,这样系统中对于A页面有2个缓存,占用2份内存,但是对于所有访问X=1和X=2的A页面的所有用户请求,不管是 1,000个还是100,000,000个,都只是分别访问内存中的这2份缓存中的其中一个而已,不会再增加额外的内存消耗,除非有一个人请求X=3的页面,当有人申请X=3的页面时,系统会再增加一个针对X=3的缓存,从而系统中保留了3份A页面缓存。
页面缓存只会根据设置的条件的不同而缓存多份页面,而不是根据请求的数量。对于条件的多个值会缓存多份页面,但是对于同一个条件的请求,总是使用同一份缓存。
背景介绍:
为了帮助您提高应用程序的性能,ASP.NET 使用两种基本的缓存机制来提供缓存功能。第一种机制是应用程序缓存,它允许您缓存所生成的数据,如 DataSet 或自定义报表业务对象。第二种机制是页输出缓存,它保存页处理输出,并在用户再次请求该页时,重用所保存的输出,而不是再次处理该页。
出于以下原因之一,ASP.NET 可以从缓存中移除数据:
1.由于服务器上的内存不足,开始一个称为“清理”的过程。
2.由于缓存中的项已过期。
3.由于项的依赖项发生了更改。
为了帮助管理缓存项,在将项从缓存中移除时,ASP.NET 会通知应用程序。
出于以下原因之一,ASP.NET 可以从缓存中移除数据:
1.由于服务器上的内存不足,开始一个称为“清理”的过程。
2.由于缓存中的项已过期。
3.由于项的依赖项发生了更改。
为了帮助管理缓存项,在将项从缓存中移除时,ASP.NET 会通知应用程序。
来源:
微软中文技术论坛(MSDN and TechNet) » Web 技术 » ASP.NET 与 AJAX » aspx页面缓存后, 内存消耗会因为访问者的数量增加而增加吗? | |
遗憾的是,当我遇见别的女子,我只在乎,那眉间是不是有你的影子!