【发布时间】: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