none
VS2019的内存诊断工具显示内存大小的问题 RRS feed

  • 问题

  • 在VS2019的内存诊断工具中显示我当前进程内存是644M,但是当我启用堆分析,截取快照时发现堆大小只有6M。

    从Task Manager的Resource Monitor中看到该进程的Working Set只有96M,Private是55M,Shareable是41M,Committed是644M.

    看起来VS2019的诊断工具显示的是Committed的内存大小,我的问题是:堆分析的快照为什么只能显示6M的堆内存?Committed的644M内存是否正在被进程使用中,能否用诊断工具查看内存的分布?

    2020年3月11日 9:05

全部回复

  • Hi Kevin,

    欢迎来到MSDN论坛。

    >>堆分析的快照为什么只能显示6M的堆内存?

    ## 据我所知,堆大小是通过拍摄快照显示.NET和本机堆中的字节数,用于分享详细的内存使用情况。Process Memory显示所有内存使用情况,由于在调试模式下会产生大量开销,比如占用一些内存用于私有进程,或者一些非共享的数据所占用的内存也会显示在Process Memory图中,但不显示在堆大小中,因而造成堆大小只显示6M的堆内存,与Process Memory图表中的数据有所出入。

    >> Committed644M内存是否正在被进程使用中,能否用诊断工具查看内存的分布?

    ## 我认为Committed显示的644M的内存并非全部被进程所使用。其显示的内存大于实际内存使用空间,并且会随着应用程序接近当前的保留量而扩大。如果你想通过诊断工具查看内存的分布,你可以通过Memory Usage -> View Heap 或者点击所选快照的堆大小链接查看具体的内存使用情况。

    希望以上建议对你有帮助。

    Regards,

    Anna


    如果您对Visual Studio Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。



    2020年3月12日 7:54