asp.net-mvc – MVC 6应用程序在视图加载后不释放内存

我正在Visual Studio 2015 RC中运行MVC 6应用程序.当应用程序在调试模式下启动大约100mb的内存使用级别时.

当我单击任何后续链接并因此加载视图时内存使用率上升且永不下降,最终导致内存不足异常时,会出现此问题.下面显示了在一分钟左右的时间点击一个非常简单的联系页面大约10次后的内存使用情况,每次内存使用量上升一点,并且10分钟后不会下降,仍然是140mb.

联系页面控制器的代码:

 public IActionResult Settings()
    {
        ViewBag.Message = "Your contact page.";

        return View();
    }

联系页面视图的代码:

@{
ViewBag.Title = "Contact";
}
<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>

<address>
    One Microsoft Way<br />
    Redmond, WA 98052-6399<br />
    <abbr title="Phone">P:</abbr>
    425.555.0100
</address>

<address>
    <strong>Support:</strong>   <a href="mailto:Support@example.com">Support@example.com</a><br />
    <strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a>
</address>

这看起来似乎不是一个小视图的问题,但在我的应用程序中加载列表页面时,使用量会显着跳跃,在5或6页加载后,应用程序崩溃并出现内存不足异常.

我拍了几张关于内存使用情况的快照,这就是显示的内容.我已经尝试过调试以查看内存峰值的位置,并且它似乎是在加载视图时.

有没有人在新的MVC项目中体验过这一点?有没有办法找出占用内存的东西并释放它?道歉是这很简单,我一直绞尽脑汁试图找出问题所在!

最佳答案 在mvc github上发布问题后,该团队报告了其导致问题的浏览器链接功能.

如果你删除app.UseBrowserLink();从Startup.cs类(默认的第99行),它将解决问题,并加快你的应用程序的速度.

https://github.com/aspnet/Mvc/issues/2790

点赞