我为我们公司建立了一套内部网站来管理我们的一些流程。我注意到这些页面存在大量内存泄漏,导致页面使用的内存远远超过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在长时间运行此页面时似乎没有任何内存问题。