我遵循了以下教程中的建议:http://humblecoder.co.uk/tag/windbg。我必须指出说,运行这个命令:!dumpheap。我在第三列中添加了总字节数,再将其除以1024和1024。这相当于42MB。有问题的ASP.NET进程大小超过1.5GB。
如果没有在任务管理器中创建转储文件的选项,则在Windows 2003服务器上完成此操作。因此,我必须运行以下cmmand:.dump / ma w3wpdump.dmp。由于这是一个小型转储,是否有缺少的东西可以帮助?
昨天我确实提出了另一个问题,其中概述了问题:ASP.NET Memory Leak - OracleCommand Object
答案 0 :(得分:0)
看看你的另一个问题,你的大部分内存使用都被字符串使用了。我会转储一些字符串来查看它们内部的内容。您可以使用dd
或db
或du
查看字符串的内容,并为其提供字符串实例之一的内存地址。即dd 0x12345678
,它将转储位于那里的内存的原始内容。您可以查看windbg帮助以获取有关d*
命令的更多信息。
但是,如果您确定托管堆似乎没有消耗内存,那么我会查看非托管堆。 !heap -s
将为您提供非托管堆的摘要,这可能是您使用多余内存的地方。