被私人字节混淆!
目前正在使用ANTS分析器分析我们的C#.NET应用程序的内存使用情况。以下是我们在启动后使用屏幕上显示的主要表单进行的调查结果。没有使用其他功能。
Gen 0堆 - 5.8MB
第1代堆 - 2.5MB
第2代堆 - 13.9MB
所有堆中的字节数 - 17MB
大物件堆 - 0.7MB
私人字节 - 130MB
工作集 - 150MB
如果所有堆中的字节数仅为17MB,为什么我们有这么大的专用字节分配?是由系统分配的私有字节还是私有字节从0开始扩展,因为它被软件填充?即是私有字节,泡沫实际上可能只是部分使用?如果是这样,是什么决定了它的大小?
答案 0 :(得分:1)
From Red-Gate: General information about "Private Bytes"
专用字节包括.NET堆上的可用空间以及 非托管内存使用情况。
答案 1 :(得分:0)
专用字节是无法与其他进程共享的进程的所有虚拟分配(即,排除代码和内存映射文件)。这将包括所有NT(本机)堆,任何托管堆,堆栈和应用程序(VirtualAlocEx)明确分配的任何内存。
您可以使用!dumpheap -stat
详细了解您的CLR内存使用情况。见CLR Memory Leak