微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – .net内存使用情况,决定私有字节大小的因素

私人字节困惑!

目前正在使用ANTS分析器分析我们的C#.NET应用程序的内存使用情况.以下是我们在启动后使用屏幕上显示的主要表单进行的调查结果.没有使用其他功能.

Gen 0堆 – 5.8MB
第1代堆 – 2.5MB
第2代堆 – 13.9MB
所有堆中的字节数 – 17MB
大对象堆 – 0.7MB
专用字节数 – 130MB
工作集 – 150MB

如果所有堆中的字节只有17MB,为什么我们有这么大的专用字节分配?是由系统分配的私有字节还是私有字节从0开始扩展,因为它被软件填充?即私有字节是一个泡沫,实际上只能部分使用?如果是这样,是什么决定了它的大小?

解决方法

专用字节是无法与其他进程共享的进程的所有虚拟分配(即,排除代码和内存映射文件).这将包括所有NT(本机)堆,任何托管堆,堆栈和应用程序明确分配的任何内存( VirtualAlocEx).

您可以使用!dumpheap -stat来详细使用您的CLR内存使用情况.见CLR Memory Leak

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐