我正在研究 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。所有这些字符串是从哪里来的?我希望你能给我一些关于这些问题的信息。