繁体   English   中英

Web应用程序使用太多内存

[英]Web application use too much memory

在我的托管公司中,我有2个或多或少相同的.net应用程序。 这两个应用程序使用相同的池,最大内存为300 mb。

我可以将其中一个应用程序的起始页面刷新大约10次,然后出现内存不足异常,并且池崩溃了。

在我的应用程序中,我打印出此内存值:

我已经阅读并阅读了有关内存配置文件的视频,但是当我对应用程序进行配置文件时我找不到任何问题。 我使用ANTS内存探查器8,并在构建后刷新一次起始页时得到以下结果: 一种

当我查看摘要时,.NET使用为应用程序分配的135.8 MB总专用字节中的41.65 MB。 每次刷新时,此值变得越来越大。 那是正常的吗? 当我刷新8次后,我得到了:.NET使用为应用程序分配的153 MB总专用字节中的56.11 MB。

我应该从哪里开始? 使用这么多内存可能是什么问题? 内存不足300 mb吗?

毫无疑问,这是由于代码中的内存泄漏引起的,很可能是以不布置/关闭与队列或数据库之类的连接的形式。 除了分析外,请检查您的代码并确保要关闭/处置所有适当的资源:然后,您的问题应会缓解。

有一些未处理的数据库连接。 然后我有一个删除Etags的类,如下所示:

public class CustomHeaderModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication context)
    {
        context.PreSendRequestHeaders += OnPreSendRequestHeaders;
    }

    void OnPreSendRequestHeaders(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Headers.Remove("ETag");
    }
}'

我必须删除在Init函数中添加的新事件吗? 还是GC可以解决这个问题?

我有很多这样的:

Task.Factory.StartNew(() =>
{
   Add(...);
});

但是我没有在我的代码中处理它们。 GC是否可以解决该问题,或者我应该以其他方式解决?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM