【发布时间】:2011-09-09 17:18:42
【问题描述】:
我有一个使用 ASP.NET MVC 3 和 Entity Framework 4.1 准备的网站。下图是我服务器的性能日志。
我的问题是w3wp.exe 每分钟都在变得越来越大并且永远不会释放。我在查询中使用LINQ to Entities,并且我所有的实体框架代码都在使用块中。
我认为这是一个垃圾收集问题,但我不确定。我的问题是什么?如何解决?
【问题讨论】:
-
如果您没有耗尽内存,这不是问题。 .NET 将分配它需要的内存,但除非必要,否则不会将其释放回系统,因为它更便宜的性能明智。除此之外,您的问题可能会被关闭,因为 1)这里有很多类似的问题,并且 2)完全不可能回答“我的问题是什么,我该如何解决?”在谈论我们从未见过的应用程序时,我们甚至不知道是否存在问题。
-
感谢您的评论,但我确实写在这里,因为 clr 内存日志让我对几个小时后的垃圾收集感到好奇 w3wp.exe 可以获得 600MB 或更高。正如你所看到的,我认为终结幸存者并不正常,因为他们一直在变高。 GC 工作吗?从现在开始,我可以再添加一张照片。
-
如果不提供使用 ADPlus 的进程转储结果和 WinDBG 的一些分析,这里的社区帮助范围很小。我建议你去阅读Tess Ferrandez's blog 并加快调试内存泄漏的速度。她有一个很棒的实验室系列可以让你从这里开始:blogs.msdn.com/b/tess/archive/2008/02/04/…
标签: asp.net-mvc-3 linq-to-entities entity-framework-4.1 w3wp.exe