【问题标题】:Difference between malloc and dlmallocmalloc 和 dlmalloc 的区别
【发布时间】:2012-07-09 01:03:54
【问题描述】:

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

【问题讨论】:

标签: android memory-management dalvik


【解决方案1】:

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

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

至于 dlmalloc 和 malloc 之间的详细区别:dlmalloc 是传统 libc malloc API 的特定实现,而“malloc”本身并不特定于特定实现。但即使你有具体的建议,我也怀疑除了“阅读代码”之外我还能提出其他建议。

【讨论】:

  • 很好的答案,想知道您是否可以澄清一些事情 - dlmalloc 是否用作 Android 上的 the malloc,在每个进程中为普通使用和 dalvik 维护单独的池,或者 dalvik使用 dlmalloc 而其他 malloc 调用(在 jni lib 或其他)最终使用其他东西?
猜你喜欢
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多