我有一个应用程序。当我重复一些动作时,匿名分配内存不断增加很多,而堆分配增加一点。有人能帮我吗 ?谢谢
问问题
1575 次
1 回答
1
关注 All Heap Allocations 的 Live Bytes 列,以查看您的应用程序正在使用多少内存。您无法控制应用程序的匿名 VM 大小。
专注于堆分配,因为您的应用程序可以更好地控制堆分配。您的应用程序进行的大部分内存分配都是堆分配。
匿名 VM 中的 VM 代表虚拟内存。当您的应用程序启动时,操作系统会为您的应用程序保留一块虚拟内存。这个块通常比你的应用程序需要的内存量大得多。当您的应用程序分配内存时,操作系统会从它保留的块中分配内存。
记住上一段中的第二句话。操作系统决定了虚拟内存块的大小,而不是你的应用程序。这就是为什么您应该关注堆分配而不是匿名 VM 的原因。您的应用无法控制匿名 VM 的大小。
资料来源: http: //meandmark.com/blog/2014/01/instruments-heap-allocations-and-anonymous-vm/
于 2016-05-31T05:40:52.203 回答