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

标签 asp.net-mvc memory memory-management asp.net-core asp.net-core-mvc

我正在 Visual Studio 2015 RC 中运行 MVC 6 应用程序。当应用程序启动时, Debug模式下的内存使用量大约为 100mb。

Memory usage low

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

memory usage high

联系页面 Controller 的代码:

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

        return View();
    }

联系页面 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>

对于小 View ,这似乎不是问题,但是在我的应用程序中加载列表页面时,使用量显着增加,并且在加载 5 或 6 个页面后,应用程序崩溃并出现内存不足异常。

我拍了几个内存使用情况的快照,这就是显示的内容。我试过调试以查看内存峰值的位置,并且似乎是在加载 View 时。

memory usage 3

有没有人在新的 MVC 项目中遇到过这种情况?有没有办法找出占用内存的内容并释放它?抱歉,这很简单,我一直在绞尽脑汁想找出问题所在!

最佳答案

在 mvc github 上发布问题后,该团队报告说是浏览器链接功能导致了问题。

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

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

关于asp.net-mvc - MVC 6 应用程序在 View 加载后不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980948/

相关文章:

c - 指针被释放但 valgrind 说它不是

java - map 分块策略,重新分块滞后问题

jquery - Angularjs + ASP.NET MVC + ASP.NET Web API

c# - Azure Web应用程序负载平衡超时问题,获取 HTTP 状态 500 和子状态 121

ruby-on-rails - 如何测量每个 gem 在初始化时需要多少内存?

c++ - 分配内存以调整堆栈大小的问题

c++ - 在 Linux 上用 C++ 实现用户空间网卡 "bus-mastering"

javascript - knockout MVC,绑定(bind)模型并将对象添加到模型

asp.net-mvc - MVC 3 在一个 View 中显示来自不同模型的数据

C - 为什么这个程序不安全?