为了在dalvik堆中分配内存区域,应用程序使用dlmalloc而不是普通的malloc,为什么使用dlmalloc,以及它与malloc的区别。 (据我所知,在创建dalvik VM时分配dalvik堆,使用了malloc。)
答案 0 :(得分:14)
高阶位是Dalvik需要一个与默认的malloc管理堆分开的底层分配器,因此它可以对分配的发生方式进行正确的控制,因为知道其他子系统不会干扰
事实证明,dlmalloc是一个相当成熟的现有库,提供了我们所需的隔离和挂钩。意图(直到我离开团队的时候)是最终我们用更定制的东西取代它,但它从来没有成为一个足够紧迫的问题来采取特定的暴跌。
至于dlmalloc和malloc之间的详细差异:dlmalloc是传统libc malloc API的特定实现,而“malloc”本身并不特定于特定实现。但即使你有具体的说法,我也怀疑除了“阅读代码”之外我还能提出更多建议。