我有一个在Windows Server 2008 R2上运行的Web应用程序。其中一个页面在第一次加载时需要很长时间才能处理。大约需要15秒,之后几乎是瞬间的。会发生的情况是,w3wp.exe进程在这段时间内从200 MB以下的RAM跳到700 MB的RAM。这很好,页面很大,需要大量的内存。在这15秒后,它会切换回大约200 MB的RAM,如果有人访问该页面,它几乎可以立即呈现。它只是第一次渲染而不管谁请求它。现在经过一段时间(如果不是几十分钟),当有人再次请求页面时,它会执行相同的操作 - 处理15秒,并跳至700 MB的RAM。ASP.NET服务器缓存
我想以某种方式保存700 MB的缓存,所以它不会过期。即使在回落到200 MB的RAM后,页面也会立即加载,但我的猜测是,这就是为什么在较长一段时间后它会“过期”并需要再次渲染。我读过@outputcache,但我不确定这是我需要的。并有many types of caching。有人能指出我正确的方向吗?我不担心内存消耗或其他任何事情,我只是不希望用户等待15秒来加载它,即使它不经常发生。谢谢!
PS:ASP.NET 4.0
也未必缓存的问题。这可能是页面加载事件代码中的错误。请检查页面加载事件。你有没有在你的页面中使用任何线程? – 2013-02-26 14:05:18
我想不是,我不确定你的意思。你能给我一个小例子吗?谢谢! – osmiumbin 2013-02-26 14:06:52
页面加载事件protected void Page_Load(object sender,EventArgs e) { }执行代码需要太多时间。这意味着在页面加载中有很多代码要在服务器中执行。你的页面laod事件中是否有任何stsrem.threading.thread方法? – 2013-02-26 14:12:40