为什么Asp.net计时器/ updatepanels在Chrome中泄漏内存并且可以修复/解决?

Kal*_*exx 5 memory-leaks updatepanel webforms google-chrome timer

我为公司建立了一套内部网站来管理我们的一些流程.我注意到这些页面存在大量内存泄漏,导致页面使用超过150mb的内存,这对于包含单个表单和GridView的网页来说是荒谬的,该网页在一个页面上显示7-10行数据时间,有时数据不会变化一整天.这是一个问题,因为由于缺少可用内存,它会降低我们的客户端计算机速度.

经过一些测试后,看起来内存泄漏非常容易重现,并且非常明显.我创建了一个包含以下asp.net标记的页面:

<body>
<form id="form1" runat="server">
<div>
    <asp:scriptmanager ID="Scriptmanager1" runat="server"></asp:scriptmanager>    
    <asp:Timer ID="timer1" runat="server" Interval="1000" />

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)

这背后绝对没有代码.这是整个页面.在Chrome中运行此网站会显示内存使用量在20-30秒内最多可达25兆.让它运行几分钟使内存达到70兆等等.

我使用定时器和更新面板是错误的,还是这是一个纯粹的Asp.net问题,没有解决方法?

注意:我不是在谈论服务器上使用的内存,我在谈论客户端上使用的内存.


编辑:好吧,这似乎是Chrome的一个问题.Firefox和IE8在长时间运行此页面时似乎没有任何内存问题.

Nel*_*mel 2

.NET 不一定会使用所有内存。请参阅如何确定我的 .NET 程序使用了多少内存?

我曾经读过一篇关于它的非常好的文章,但现在找不到了。如果我这样做,我会更新这个答案。

编辑:这是一个很好的:链接 还有一个:http ://www.getdotnetcode.com/gdncstore/free/Articles/The%20Memory%20Mystery.htm