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

最佳答案

高阶位是,dalvik需要有一个与默认malloc管理堆分离的底层分配器,这样它就可以在知道其他子系统不会干扰的情况下,对分配的方式进行正确的控制。
事实证明,dlmalloc是一个相当成熟的现有库,它提供了我们需要的隔离和挂钩。我们的意图(直到我离开球队的时候)是最终我们会用更为定制的东西来取代它,但它从来没有成为一个足够紧迫的问题来采取这种特别的冒险。
至于dlmalloc和malloc之间的详细区别:dlmalloc是传统libc malloc api的一个特定实现,而“malloc”本身并不特定于特定实现。但即使你说得很具体,我也怀疑我除了“读代码”之外还能提出什么建议。

08-25 01:37