9

为了在 dalvik 堆中分配内存区域,应用程序使用 dlmalloc,而不是普通的 malloc,为什么使用 dlmalloc,以及它与 malloc 的区别。(据我所知,为了在创建 dalvik VM 时分配 dalvik 堆,使用了 malloc。)

4

1 回答 1

15

最重要的是,Dalvik 需要有一个与默认 malloc 管理的堆分开的底层分配器,因此它可以正确控制分配的发生方式,因为它知道其他子系统不会干扰。

事实证明,dlmalloc 是一个相当成熟的现有库,它提供了我们需要的隔离和钩子。意图(直到我离开团队时)最终我们会用更定制的东西来取代它,但它从来没有成为一个足够紧迫的问题来采取那种特别的尝试。

至于 dlmalloc 和 malloc 之间的详细区别:dlmalloc 是传统 libc malloc API 的特定实现,而“malloc”本身并不特定于特定实现。但即使你有具体的,我怀疑我可以提出任何比“阅读代码”更多的建议。

于 2012-07-11T20:28:56.850 回答