1

我正在研究 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 中的教程网站,但同样的概念适用于我分析的所有网站。当我在空闲状态下在网站上运行 ant profiler 时,我得到以下摘要:

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

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

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

4

1 回答 1

0

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

于 2011-08-22T10:24:08.147 回答