尝试对同一个 .net 3.5 应用程序的 2 个版本进行前后比较,结果不一致,具体取决于我使用的工具。
typeperf - 我认为这是权威的 - 说:
- v1:244MB / 260MB(私有字节/工作集)
- v2:281MB / 296MB
Process Explorer在性能图中显示了这些数字:
- v1:283MB(私有字节)
- v2:262MB
所以 typeperf 说 v2 需要更多的内存,Process Explorer 则相反。
这些都是单独的测量和不同的运行,但数字是惊人地可靠地重现。
除了前面提到的 2 个工具之外,我还从 Process Explorer 获取了完整的内存转储,并且只查看了文件大小(还没有时间去 WinDbg 或以其他方式分析它们):
- v1:484MB(完整转储文件大小)
- v2:480MB
此外,当从.net Memory Profiler运行应用程序时,v2 中的本机内存、.net 内存以及总内存都低于 v1。
所以它似乎是对世界其他地方的 typeperf(WinDbg 分析仍然很出色)。
谁是对的,我怎么知道?