在极客湾评测小米 15 的视频中,提到了 HyperOS 2.0 对内存管理的优化。
看到这里感觉非常迷惑,印象中 Linux 的页大小是一个固定的值,和 CPU 的支持相关,一般都是用 4K ,Android 15 要改成 16K ,小米是怎么实现动态的页大小的?
另外这么改不会造成兼容性问题吗? Android 15 要改成 16k 页都需要一些应用重新编译,动态的岂不是更难适配?
1
NealLason 33 天前
其实就是 Huge TLB 技术,ARM MMU 硬件支持的。
https://docs.kernel.org/admin-guide/mm/hugetlbpage.html |
3
Chinsung 33 天前
OS 要实现动态页的话,OS 在整个页面汰换和分配算法上要做非常巨大并且深入的改变,按照他的这种说法,应用层申请内存的部分大概率也得重写(指定具体大小的页,或者由 OS 经过一定类似学习的算法来改变给这个应用分配的大小),这块其实想做好难度非常大,不然也不会那么多 OS 都还是固定页+大页支持了
|
4
cooltechbs 33 天前 via Android 1
2M 超大页不新鲜了,把固定 4K 页改成固定 16K 也不复杂(我记得苹果 M 系列就是用的 16K ),但是要实现 4/8/16/32/64K )自适应,我第一反应是有这个必要吗?
|
5
Victora 33 天前
@cooltechbs #4 我也觉得必要性不大。只能说好过什么都不做吧,实际性能有个 10%影响就不错了。
|
6
levelworm 33 天前
所谓动态的话,会不会是根据应用来?能看到源代码吗?
|
7
kingcanfish 33 天前 4
其实我更倾向于吹牛逼
|
9
dhb233 33 天前
我的理解是,内存少的情况下,动态可以提升使用率的同时,提升性能。内存足够的情况下,全用 2M 页
|
10
FightPig 33 天前 1
现在小米的系统每次都吹进步,用起来发现和以前还一样
|
11
bxb100 33 天前
不是太熟悉这个, 但是我一直有个疑问, 这种垃圾回收是不是性能地狱
|
12
DefoliationM 33 天前 5
用小米这么久了,估计 8 成是供应商技术,感觉小米很少会自己改底层的东西。
|
13
guiyumin 33 天前
@cooltechbs 有必要,linux 就正在研究怎么干,今天刚才在推特上看的,当然,这个还处于非常早期,因为工程太过于复杂了
|
14
guiyumin 33 天前
@DefoliationM 就是,这个动态内存技术是 linux 内核级别的优化,我觉得不应该是小米这个级别在搞
|
15
scys 33 天前
其实没啥小米级别,小米内核也是有很大一部分是 linux ,估计就是改了内核的内存分配方法,只是没有提交到开源社区。毕竟这是商业推动的,十几人,鏖战几个月足够小米弄出来了。
|
17
Yadomin OP 只能等小米开源内核再研究了🤔
|
18
maolaohei 33 天前 via Android
那个高斯模糊的替代方案简直是天才,同样效果,性能要求很低。
|
20
maolaohei 33 天前 via Android
@apples01 就是使用 gpu 当前界面生成的多级 mipmap 来合成,实现了近似高斯模糊的效果,而且相比高斯模糊性能要求非常低。
|
21
wuoty 33 天前
伙伴系统?
|
22
firstlove 33 天前 3
|
23
muapyw 33 天前
只要金凡敢开通抖音号,我就信了 hy2 吹的牛逼
|
24
xiuming 33 天前
记得 golang 也是内存分级 将对象分成了三类 8B 到 32KB ,总共 67 种跨度类的大小 还有内存对齐 ,小米后端也是挺多用 Golang 。
|
26
Donaldo 33 天前
这个东西在系统 framework 层应该是没法动?那如果是修改的 linux 内核,那他应该会开源吧(假设他遵守 GPL ),那到时候就能看到源码了。
|
28
liyafe1997 33 天前
我感觉更倾向吹牛逼,先不说动态页,就算你改变页大小,用户空间的 binary 都要重新编译适配吧?
|
29
12101111 33 天前
这个是 OPPO 去年最先用到手机上的
可以看看今年 LPC 上 OPPO 的演讲 Product practices of large folios on millions of OPPO Android phones (演讲人的英文口语非常难绷) 还有去年的 ppt https://github.com/ChinaLinuxKernel/CLK2023/blob/main/%E5%88%86%E8%AE%BA%E5%9D%9B1%EF%BC%88%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%EF%BC%89/8%20%20%E5%8A%A8%E6%80%81%E5%A4%A7%E9%A1%B5%EF%BC%9A%E5%9F%BA%E4%BA%8EARM64%20contiguous%20PTE%E7%9A%8464KB%20HugePageLarge%20Folios%E2%80%94%E2%80%94%E9%9F%A9%E4%BC%A0%E5%8D%8E.pptx |
30
vsomeone 33 天前 via iPhone
我印象里 Linux 也支持 THP 透明大页,现在手机动辄十几个 G 的内存应该也开启了 THP 吧?感觉他这个视频像为了营销做的
|
31
DylanLiuH2O 33 天前
要是小米能发个论文写个专利啥的我就信了,不然可能就只是一些工程上的针对性调优,普适性未知,说起来确实感觉没有鸿蒙内核那么有含金量。
|
32
uriah 33 天前
不知道和最新的 Android 15 Beta 2 引入 16KB 内存页面支持。是不是一类
|
33
Stevenv 33 天前 via iPhone
不信。流畅度可能是处理器更新带来的哈哈
|
34
WizardLeo 33 天前
@DefoliationM 如果是供应链技术,应该不止小米一家能接触到吧?应该不会作为主要宣传的内容才对。
|
36
ffnil 32 天前
linux 是 gpl 的吧,能看到源代码吗?
|
37
Yadomin OP |
38
Shaaaadow 30 天前
前内核开发者表示,极客湾讲的可能也有点片面了。小米的内核具体怎么实现的我不了解,但是搞 huge page 的主要目的不是为了降低 page fault 次数,而是降低 TLB miss 频率。
|
39
hwf 30 天前
说实话, 小米的 HyperOS 2 大部分优化,性能提升都是处理器带来的, 看看今年各大 OS 都在说性能提升多少多少, 动画多么多么流畅就知道了, 功耗下降多少多少, 都是处理器带来的
|
40
nod32vad 27 天前
我很好奇 HyperCore 的那个 CPU 空转时间降低也是他们自己搞的吗
|