这是这种情况
我正在开发一个内容管理系统,我们有两个部分,首先是管理员端,管理员用户可以在其中填写内容,第二部分是用户端,用户可以从管理面板查看管理员提供的内容。
如果用户正在浏览我的网站,他只访问那些只做一件事的页面,他们根据页面从数据库中提取内容并将该内容显示给用户。
问题是当我在本地 IIS 中运行我的网站并浏览它一段时间并跟踪 IIS 工作进程 (w3wp.exe) 的内存使用情况时,峰值使用量显示为109,292 K。
所以为了解决这个问题,我把这段代码放在我的global.asax文件中
void Application_EndRequest(object sender, EventArgs e)
{
GC.Collect(0, GCCollectionMode.Forced);
GC.Collect(1, GCCollectionMode.Forced);
GC.Collect(2, GCCollectionMode.Forced);
}
在此之后,使用量在峰值使用量下降到75,980 K。
问题是我在这里做对了吗?因为我读了很多文章说我不应该这样做GC.Collect
。
更新
在实际环境中,这是没有任何情况的情况GC.Collect()