首页 > 解决方案 > 如何在 ndk 工具链中实现 malloc_trim(0)?

问题描述

因为 ndk 中没有 malloc_trim 函数,所以想想办法在 ndk 中实现 malloc_trim(0) !

标签: androidc++linuxandroid-ndkheap-memory

解决方案


像下面这样的简单定义就足够了:

int malloc_trim(size_t pad) { return 1; }

更好的是查看您正在编译的任何库是否有一个完全禁用使用的标志malloc_trim

编辑:根据这篇文章jemalloc是默认的内存分配器。jemallocmmap默认使用,而不是sbrk. 当满足某些条件时,Jemalloc 会自动将内存返回给操作系统,因此我不会费心尝试为 malloc_trim 提供有用的实现。


推荐阅读