Android15 试图推的 16K 内存页究竟能有多少收益

52 天前
 jim9606

虽说目的是提升性能,但感觉为了这个提升(Google 自己的数据都没 10%)修改的代价有点大啊:

  1. 原生库需要重新编译,可能需要修改代码以支持动态页大小,代码段需要 16K 对齐
  2. 16K 页表只能全局启用,不允许 4K 页应用与 16K 页应用混合运行,因为 Linux 不支持
  3. 只有高版本 NDK 和 AGP 支持,老版 NDK 不一定能通过改链接选项实现兼容

考虑下收益,感觉完全看不到能推下去的可能性,哪怕有是 Play 市场来推,要求升级 NDK 可比升级 Target 难多了。

4693 次点击
所在节点    Android
16 条回复
seers
52 天前
应该是为了匹配越来越大的 ram ,不然怎么看都像是小马拉大车,只能说战未来了
kenvix
52 天前
难评,x86 高性能计算这么多年来了还是 4K 页,不知道为什么嵌入式反而这么积极
billccn
52 天前
@seers 应该和内存大小无关,服务器是手机几十倍内存还不都是 4k page 。因为 page table 是多层的,所以可容纳的页面数量一般超过 CPU 的硬件寻址限制。


Android 推这个应该是处于功耗的考虑,因为页面变成 4 倍大,那 page fault 可能就会变成原来的 1/4 概率。另外大多数 Android 设备的 swap 不是硬盘,而是 zRAM ,压缩解压也挺费电的,操作次数越少越好咯。我想 16K 的压缩比可能也比 4K 好一点
ziseyinzi
52 天前
就是实验性支持一下吧,为 Android 25 做铺垫。
ysc3839
52 天前
感觉是跟苹果的风
imluvian
52 天前
这是给汽车用的。汽车上要开 inline ecc ,能差很多。
Venjer
52 天前
面向未来,15 也不是强制打开的。开发者模式才能打开,估计至少得 5 年-8 年才能慢慢强制。可以参考 32 位- 64 位 app 的过度时间
Flyfish233
52 天前
我有个应用虽然东西多,但是用的都是开源库,自己扒拉扒拉已经可以正常使用 16k page ,有个开发者问我怎么搞不了,我让他发 Libchecker ,一看用了一个华为闭源库。我认为国内会很难推广,而且这个不一定像 64 位这么好推了
jim9606
52 天前
@seers
大页的好处是提高 TLB 命中率和减小页表,坏处是可能加剧伪共享和碎片内存浪费(这会导致某些假定 4K 页的多线程优化变成负优化),是个有 tradeoff 的选择

@Venjer
这跟迁移 64 位不太一样,现在迁移 64 位态度强硬是因为上游 ARM 的新公版 IP 核去掉了 AArch32 支持,在这之前迁移态度并不强硬,所以不算是 google 自己决定的,虽然肯定是跟 ARM 在 roadmap 上通过气。而这个 16K 页并不需要硬件支持,纯是 google 自己决定了。
国内迁个 arm64 都那么费劲,别说这种不影响可用性的调整了。
V28a19cc
52 天前
目前是零收益,因为目前切换 4K/16K 需要格式化 data 。
Metre
51 天前
这几年 arm 的 linux 的 64K page_size 已经把我适配吐了
GeekGao
51 天前
一方面为了匹配更大的内存需求,另一方面提升内存管理效率:16KB 页面大小比 4KB 大 4 倍, 意味着内存管理单元(MMU)需要处理的页面表项减少了 4 倍,Android 性能和效率方面将会获得显著提升。
Rorysky
50 天前
@billccn 那为什么不直接搞 64k
billccn
50 天前
@Rorysky 我也想知道,因为 16K 确实有点鸡肋。

我唯一能想到的是苹果 M 系列芯片用的是 16K ,算是 Arm 生态里面的可借鉴的经验?
jim9606
49 天前
@Metre 这玩意难处在哪?我看的文章说有源码的话改掉硬编码 4k 的部分然后重新编译就行。
Metre
48 天前
@jim9606 #15 arm linux chromimum 64K 的你找找 说白了生态不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1073271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX