发帖
客户端
扫码下载
打印 上一主题 下一主题

Android 内存优化方案

[复制链接]
3 |0
跳转到指定楼层
楼主
Yangsh888 发表于 6 小时前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这里可以调整气泡内文字大小!滑动试试吧! ×
12 px
26 px
内存优化:核心是不用,少用,快速使用。
不用:这个没啥讲的。砍业务砍功能就可以不用了。
少用:一个是减少加载到内存的数据。一个是加载到内存的数据占更少的空间
快速使用:一个是快速分配,避免关键路径耗时卡顿,一个是快速释放,别占着茅坑让给更紧急更重要的场景。

当然,上面的都可以通过业务功能角度进行拆解提优化方案。功能不同方案不同,思路类似:提前/并行/延后;降品质/降精细度;。。。

说下更通用的几个方案思路:
一般文件读写都要进page cache。 page cache 要走类似lru方式释放。 行业里面有提出针对 Android /data 等可读写分区 F2FS 文件系统 使用 uncached  buffer io方案。 针对只读一次的数据,直接打标签稍后直接可以优先回收。

那能否不走page cache呢?
针对Android /system只读文件系统 EROFS 也在研发 direct io方案。减少page开销,提高读取速度。

如果要走page cache呢?
又有个方案:对干净的page cache 走 zcache 内存池压缩方案。减少内存占用。释放也能直接释放, 没有回写问题。

提到压缩,也有方案。
针对zram ,Android提供了多压缩算法选择。可以根据负载等场景动态选择压缩算法。

压缩也有方案,比如卸载到GPU做压缩。
zram后的swap也有优化方案,就是彻底重构swap代码。

上面提到的方案绝大部分都能在Linux kernel提交记录里面发现。感兴趣的可以去翻一翻。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门版块
技术讨论
技术难题,共同探讨。
快速回复 返回顶部 返回列表