【问题标题】:MVC 4 website memory leak detectingMVC 4 网站内存泄漏检测
【发布时间】:2014-12-15 16:48:53
【问题描述】:

我有一个 MVC4 网站。当我在主机上运行它时,我得到了非常高的内存

Process Info {2 processes)
PID/Name: 96148 - w3wp
Start/Uptime: 12/15/2014 8:41:53 AM - 00:01:26
CPU Time: 00:02:18
Working set (memory): 1.41 GB

我怎样才能找出问题所在?我没有内存泄漏的经验。我的网站在本地运行良好。我认为是因为在线网站有很多用户访问(我每月大约有 150 万页面浏览量)。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 memory-leaks


    【解决方案1】:

    有太多的可能性。通常,如果您的应用程序在 SessionState 或 Runtime.Caching 中缓存很多,它最终会耗尽内存。

    在没有看到您的应用程序的情况下,我们无法确定导致问题的原因。我要做的第一件事是使用 Memory Profiler 进行分析。

    例如——

    Red-Gate - ANTS Memory Profiler

    JetBrain - dotTrace

    Telerik - JustTrace

    【讨论】:

    • 感谢您的帮助。我缓存数据库中的所有记录。示例:HttpContext.Current.Cache.Add("gp_Users", All().ToList(), null, DateTime.Now.AddDays(30), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
    • @MrTung - 这肯定会导致高内存使用。
    • @MrTung HttpContext.Current.Cache 是一个缓存,这些缓存通常位于服务器内存上。 All().ToList()的大小有多大?
    • @Win 我有大约 20k 条记录,它们保存代理(IP、端口、日期......)。那么,我应该删除这个吗?此外,normam 内存大约 300mb,有时需要 1.4GB 或更高。您是否认为当更多用户访问网站时会出现高内存?谢谢
    • @MrTung 20K 对于缓存来说太多了。您可能想要禁用该特定缓存并测试应用程序的性能。
    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2012-01-22
    • 2015-02-28
    相关资源
    最近更新 更多