首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dalvik堆大小和堆基

Dalvik堆大小和堆基
EN

Stack Overflow用户
提问于 2014-04-06 19:07:46
回答 2查看 1.1K关注 0票数 0

我想知道如何确定堆基地址和堆大小,

我希望能够转储我的应用程序堆,

有什么办法吗?

另外,当我试图通过/proc/pid/ map读取进程内存映射时,我没有看到堆部分,为什么?

DVM是否使用mmap分配匿名区域?

如果是的话,我怎么能追踪到他们?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-12 16:13:07

在linux中,可以使用showmap转储堆大小信息,部分是/ashmem/dalvik-堆。Android为我们提供了两个分析Java堆和本机堆的工具。Java是Android,本机堆是本机堆分析。

票数 0
EN

Stack Overflow用户

发布于 2014-04-06 19:20:14

我想知道如何确定堆基地址和堆大小, 我希望能够转储我的应用程序堆, 有什么办法吗?

代码语言:javascript
复制
public static void logHeap() {
                Double allocated = new Double(Debug.getNativeHeapAllocatedSize())/new Double((1048576));
                Double available = new Double(Debug.getNativeHeapSize())/1048576.0;
                Double free = new Double(Debug.getNativeHeapFreeSize())/1048576.0;
                DecimalFormat df = new DecimalFormat();
                df.setMaximumFractionDigits(2);
                df.setMinimumFractionDigits(2);

                Log.d("tag", "debug. =================================");
                Log.d("tag", "debug.heap native: allocated " + df.format(allocated) + "MB of " + df.format(available) + "MB (" + df.format(free) + "MB free)");
                Log.d("tag", "debug.memory: allocated: " + df.format(new Double(Runtime.getRuntime().totalMemory()/1048576)) + "MB of " + df.format(new Double(Runtime.getRuntime().maxMemory()/1048576))+ "MB (" + df.format(new Double(Runtime.getRuntime().freeMemory()/1048576)) +"MB free)");
            }

DVM是否使用mmap分配匿名区域? 如果是的话,我怎么能追踪到他们?

读取https://source.android.com/devices/tech/dalvik/index.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22898610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档