【发布时间】:2011-01-17 00:41:34
【问题描述】:
Android 平台使用什么 libc 实现?使用什么 malloc 实现(ptmalloc 或 tcmalloc 或其他)?
【问题讨论】:
标签: android malloc libc bionic
Android 平台使用什么 libc 实现?使用什么 malloc 实现(ptmalloc 或 tcmalloc 或其他)?
【问题讨论】:
标签: android malloc libc bionic
libc 是 Bionic,malloc 是 Doug Lea version,命名为 dlmalloc(启用 USE_LOCKS 以确保线程安全)。
更新:dlmalloc 已于 2016 年 1 月删除:https://github.com/android/platform_bionic/commit/c650447239352d43acc2fd99a8579a85ae0469ab https://sourceforge.net/p/android-x86/bionic/ci/0ac0cee0d1ab60a92103a5021e76ec31da2e3234/ "Merge "Remove dlmalloc.""
+libc_malloc_src := bionic/jemalloc_wrapper.cpp
+libc_common_c_includes += external/jemalloc/include
所以,Android 7 使用外部 malloc 实现 jemalloc(来自 FreeBSD/Facebook) - http://jemalloc.net/ 和 https://github.com/jemalloc/jemalloc;代码的android变体在那里:https://android.googlesource.com/platform/external/jemalloc/
【讨论】: