比较替代实现的内存占用

时间:2012-03-27 12:56:07

标签: .net xml memory

我需要比较两个xml文档,并且想要弄清楚XmlReader与XmlDocument / XDocument相比在什么数据大小下开始产生显着的大小优势。

在我的天真中,我想我可以简单地运行我的简单测试控制台,它使用两个不同的实现来比较两个XML文件的内容(一个基于XmlDocument,另一个基于XmlReader),同时使用工具进行分析。 p>

我尝试使用CLR Profiler 4,它是CLR Performance Architect的免费工具,但它完全没有给我任何信息。然后我下载了ANTS Profiler的试用版,但这对我一无所知!

我的测试文件ATM相当小,程序只是浏览两个文件然后退出。如果这很重要,它将作为控制台实现。我无法理解为什么我从ANTS获得“没有结果显示”和CLR Profiler的“0字节分配” - 两者似乎都只显示“实时”结果,但我想运行代码,并分析什么之后发生了。

有没有一种简单的方法可以解决这个问题? GC或相关类型是否可以显示使其成为可能的功能?我主要对使用的总内存感兴趣,但是也有兴趣看看是否创建了任何大对象(> 80KB,因此不是“可碎片整理”)。

-

请不要使用样板“XmlReader较小”或“XmlReader具有平坦的足迹”响应。我知道这一点。但我需要确定增益的大小以及数据大小,以便在它们之间进行实际选择。只知道XmlReader“在某些时候”会“显着变小”,这根本就不够好。

1 个答案:

答案 0 :(得分:1)

使用内存分析器,您通常会在有趣事件之前和之后拍摄2个快照,然后将它们进行比较以查看内存使用情况和泄漏情况。因此,您可以在解析之前和之后(但在释放所有资源之前)向您的应用添加一些Console.Read(),在这些时刻拍摄snapshoot并进行比较。但是,如果您只需要查看内存使用情况,那么我认为您可以使用任务管理器或Process Explorer来完成。

样品: enter image description here