【发布时间】:2015-08-16 18:14:27
【问题描述】:
我正在尝试使用 Visual Studio 来跟踪我的应用程序中的内存使用情况。在“诊断工具”窗口中,它显示我的应用程序正在使用 423 MB。谢谢我去'内存使用'和'ViewHeap',当我点击快照时,我得到一个我的对象大小的表。
但是当我把这些数字加起来时:
= 3317228
+ 403764
+ 354832
+ 264984
+ 244836
+ 195748
+ 144032
+ 28840
+ 16452
+ 13920
+ 13888
+ 3428
+ 2100
+ 20
= 5004072
= 4.77 MB
我的问题是为什么这个数字 4.77MB 与我在“内存”图表上看到的 423MB 不匹配。我希望看到左边的表格详细说明了 423 MB 的去向。请告诉我我错过了什么?
【问题讨论】:
-
这些值(至少在 Visual Studio 2015 RC 中)对于进程占用的特定内存都不是特别准确。它们都旨在为您提供一种简单的方式来检测应用程序中的潜在内存问题,不一定用于性能基准测试。如果您查看任务管理器,那里分配的值可能与这些值中的 both 不同。例如,图表中有 21.5MB,堆中有 92.3KB,任务管理器中有 4,200KB 用于一个特定的应用程序。
-
谢谢。但我计算出的数字是 4.77MB,与“内存”图上的数字 (423MB) 相差甚远。它关闭了 10 倍。这也正常吗?
-
我的 (92.3KB) 减少了 233%。我相信您应该使用 start diagnostic tools without debugging 选项。当使用
F5调试器与诊断工具一起工作时,调试工具会出现大量开销。此外,任何非共享>数据(即加载的类型等)都将显示在Memory (MB)图表中,因为它是私有进程内存。
标签: c# visual-studio