Memory leaks 为什么Asp.net定时器/更新面板会在Chrome中泄漏内存,并且可以修复/解决吗?

Memory leaks 为什么Asp.net定时器/更新面板会在Chrome中泄漏内存,并且可以修复/解决吗?,memory-leaks,google-chrome,updatepanel,timer,webforms,Memory Leaks,Google Chrome,Updatepanel,Timer,Webforms,我为我们公司建立了一套内部网站来管理我们的一些流程。我注意到这些页面存在大量内存泄漏,导致页面使用的内存远远超过150mb,这对于一个由单个表单和GridView组成的网页来说是荒谬的,它一次显示7-10行数据,有时数据一整天都没有变化。这是一个问题,因为它由于缺乏可用内存而减慢了我们的客户机 经过一些测试,内存泄漏似乎极易重现,而且非常明显。我使用以下asp.net标记创建了一个页面: <body> <form id="form1" runat="server"> &l

我为我们公司建立了一套内部网站来管理我们的一些流程。我注意到这些页面存在大量内存泄漏,导致页面使用的内存远远超过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>

这绝对没有代码。这是本页的全部内容。在Chrome上运行该站点显示,内存使用量在20-30秒内达到25兆。让它运行几分钟会使内存增加到70兆等

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

注意:我说的不是服务器上使用的内存,而是客户端上使用的内存



编辑:看起来这是Chrome的问题。Firefox和IE8在长时间运行此页面时似乎没有任何内存问题

.NET不一定会使用所有的内存。看

我曾经读过一篇很好的文章,但现在找不到了。如果有,我会更新这个答案


编辑:这里有一个很好的答案:还有一个:

我知道上次回答已经有一段时间了,但也许我的答案会帮助一些人。我也有类似的问题。我需要定时器在后台工作。我最终使用了更新面板,定时器导致内存泄漏。我的计时器在更新面板内。使用
可见:=False使更新面板不可见解决了问题。看起来页面每秒都会被重新绘制,导致内存使用量增加

我不是说服务器上的内存。我说的是客户端的内存。@KallDrexx-哦,你是说Chrome使用了那么多内存?尝试最小化Chrome,看看内存是否下降。它的行为可能仍然与我提供的链接类似。另外,请尝试其他浏览器,查看是否存在相同的内存问题。我也会尝试一下。在我原来的帖子中添加了编辑。这似乎只是Chrome中的一个问题,而不是FF或IE8。有趣。@KallDrex-IE8的内存没有增加。然而,一般来说,四处浏览会增加私有工作集,并且不会再次下降。这并不意味着它实际上使用了所有这些。我不确定我真的能回答这个问题…@KallDrexx-是的,我不会称之为“ASP.NET内存泄漏”,因为浏览器确实在处理内存。ASP.NET只发送HTML和JavaScript(“文本”)。我认为最接近的情况是,如果ASP.NET ViewState无限期地增加,但从技术上讲,这不是内存泄漏。我只是想指出,我的一个内部应用程序也有同样的问题,所以你并不孤单。该应用程序大量使用计时器/UpdatePanel循环,大约每5秒从服务器下载一次更新。它在IE中工作得很好,但在Chrome中运行一夜,你会发现每天早上它都会使浏览器崩溃。我大约在10分钟前启动了它,一开始它在Chrome任务管理器中使用了90MB。现在它正在使用373MB,并且正在爬升。。。