【问题标题】:.NET MVC memory profiling questions.NET MVC 内存分析问题
【发布时间】:2011-10-25 00:40:45
【问题描述】:

我正在研究 ASP.NET MVC Web 应用程序的内存使用情况。 对于我的研究,我在 Virtualbox 4.1 中使用带有 IIS 6.1 的 Windows Server 2008 R2 和 SQL Server 2008 R2。 我选择使用虚拟服务器,因为它不是在实时服务器上测试的选项。对于分析,我使用的是 ANTS Memory Profiler 7.0。 一开始我想知道为什么即使是最简单的网站也已经使用了大约 30 - 40mb。

例如,我正在使用“我的 MVC 应用程序”网站,这是 Visual Studio 中的教程网站,但同样的概念适用于我分析的所有网站。当我在空闲状态下在网站上运行 ants profiler 时,我得到以下摘要:

Generation 1: 26kb
Generation 2: 2100kb
Large object heap: 240kb
Unused memory allocated to .NET: 3265kb
Unmanaged: 20890kb

现在,我想知道非托管块中有哪些信息?有什么方法可以让我找出并降低这个块的大小吗?

此外,还有 7000 个字符串对象,在空闲模式下总共占内存约 600k。所有这些字符串是从哪里来的?我希望你能给我一些关于这些问题的信息。

【问题讨论】:

  • 我已经研究过WinDBG和SOS,虽然我不知道如何使用这个工具来回答上面的问题。此外,它还为我提供了 ANTS 工具提供的很多信息。

标签: .net asp.net-mvc memory profiling ants


【解决方案1】:

如果您使用的是 ANTS Memory Profiler 7,请在字符串实例上使用 Instance Categorizer 来划分它们并找出它们的来源。它在这种情况下特别有用,在这种情况下,您有数千个实例,并且您想弄清楚它们来自哪里。字符串经常需要这种分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多