【发布时间】:2016-04-23 08:49:55
【问题描述】:
我的 asp.net 网站在 20 分钟内增长到 2 GB 并重新启动。 当我运行这个网站时,在本地主机上抛出 Visual Studio 并更新一页 30 次,网站增长了 ~50-100 MB。 我试图在没有数据库连接和布局的情况下运行非常简单的页面。这一页上只有一个字。经过数百次更新此页面网站并没有增长。 然后我尝试返回到第一个(复杂)页面,但我已经注释了 cshtml 文件中的所有标记。此页面上只有布局。网站正在增长 微不足道。 然后我评论了布局,只留下了带有许多注入数据的简单表格标记。 30 次更新后,网站再次增长约 50-100 MB。
我尝试使用 dotMemory 来检测原因。它的一些截图:
如果我可以提供更多信息,请告诉我。
第 2 代的碎片化率为 97%。 (使用 138 MB,免费 220)。我不知道它是怎么回事。
我拍摄了 2 张快照。大部分新对象(和新字节)都是Char[],哪一部分是StringBulder,哪一部分是PageExecutionContext,哪一部分是CacheEntry。
我认为,它是一些视图缓存(cshtml 文件)。但这只是猜测。
谁能帮我解决这个问题?
【问题讨论】:
-
请提供一些技术细节。没有它,我们无法为您提供帮助。
-
@PiyushKhatri,我准备给你更多细节,但我不知道你需要什么细节。
-
我需要详细信息,例如您拥有的页面类型。正如你在这里写的那样,你不使用数据库,所以只是 aspx 页面?还是只是 html 静态页面?总共有多少页?等等
-
@PiyushKhatri,我只测试了一页。这是包含来自数据库的许多数据的 cshtml 文件。我已经尝试清除所有标记,但留下了所有数据库逻辑。在这种情况下,应用程序的内存不会增长。调用了数据库上下文的 Dispose() 方法。
-
所以这意味着数据内存的bec增长。您可以做的一件事是询问您的托管服务提供商。
标签: c# asp.net asp.net-mvc memory memory-leaks