【发布时间】:2012-05-11 19:07:02
【问题描述】:
是否可以设置特定于应用程序的最大堆大小(dalvik.vm.heapsize 属性),而不是为运行在 Android 设备上的所有 VM 使用相同的最大堆大小?我知道我可以通过将设备的 AndroidRuntime.cpp 修改为 root 来设置新的 dalvik 堆大小,但根据我所阅读的内容,因为 Android 只初始化 VM 一次,然后分叉后续 VM 实例,所有在设备上运行的 VM 都具有相同的 dalvik .vm.heapsize 属性。我是否正确理解这一点,有什么办法可以解决吗?
【问题讨论】:
-
您是否以 root 身份工作?我不认为有任何简单的解决方案,除非您想弄乱 dalvik 代码。
-
是的,我以 root 身份工作,可以修改 dalvik 代码。我的想法是用 fork+exec 替换 dalvik 中的 VM 分叉,这样我就可以重新初始化 heapsize 属性,但我不知道这会导致什么样的性能劣势。对此有什么想法吗?
标签: android heap-memory dalvik