RickRobust

RickRobust

V2EX 第 633884 号会员,加入于 2023-06-14 11:01:32 +08:00
根据 RickRobust 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
RickRobust 最近回复了
侯翠翠
300 天前
回复了 tsohgdivil 创建的主题 Apple 为什么 iOS 不支持虚拟内存?
@neiltroyer849 谢谢
我再补充一下,不管是 apple 怎么称呼扩展内存的技术(毕竟 apple 在 m 系列的 ipad 才在正式引入“swap”这个词),在内核层面所有的 ios 设备都跟 macos 一样存在 swap 这个东西的,对应 vm swap subsystem ,可以直接去看源码。


从中可以清晰看到 ios 最多创建 5 个 swapfile ,每个 128MB ,也就是最高 640MB ;而 macos 可以创建 100 个,也就是 12800MB 。考虑到 apple 声称自己的内存压缩技术可以达到两倍的效率,上面的数字可以乘 2 。从代码看虽然二者的 vm swap subsystem 实现逻辑存在一定的差异,我毫不怀疑 ios 同样可以实现 macos 所谓 8g 当 16g 使用的体验的,但实际上 apple 只是把它当成了一个 backup ( 640M 实在是太小了),功耗可能是一个考量,更重要的我觉得还是刀法,毕竟安卓已经用了好几年了(至少五年或更早前就存在了,只是当时还没有被厂商作为宣传噱头),也很少有 report 讲 swap 开启前后功耗开销问题,这个东西如果做大对 apple 来说就是改个宏的事儿,大不了做个开关也行,但事实上他们没有。


至于 m 系列 ipad 引入的所谓 swap ,我没有深入了解,看起来是为了管理应用对大内存的需求而独立设计的另一套系统,有专门的 api ,比如所有应用内存管理本身还是受 jetsam 监督,而走这个 api 就可以 bypass 掉,以及专用 api 可以实现更灵活的内存管理,带来更好的能效收益。


总之,内核的 swap 和 apple 最近 claim 的 swap 我觉得还是两码事儿,前者强调的是应用内存数据的留存,可以理解为后台挂更多的应用,但每个应用能管理的内存还是有限的;后者强调单个 app 可以管理更多内存,比如剪辑视频,在管理过程中当然同样允许换出到外存。


手里有一台 2 代 ipad pro 12.9 ,强开了台前调度体验还是很不错,美中不足的就是后台的问题,过年回家无事我打算研究一下怎么基于 checkra1n 修改 xnu 破掉这个限制,比如在 kernel 启动前覆盖 https://github.com/apple/darwin-xnu/blob/main/osfmk/vm/vm_compressor_backing_store.c#L138 这个宏对应的值;或者启动后找机会覆盖 vm_num_swap_files_config 这个值。。


个人见解,欢迎大佬纠错补充。
301 天前
回复了 tsohgdivil 创建的主题 Apple 为什么 iOS 不支持虚拟内存?
其实是有的,最大是 640MB ,路径在/var/vm/swapfile[0-4],具体见 https://github.com/apple/darwin-xnu/blob/main/osfmk/vm/vm_compressor_backing_store.c#L138
他是写死在 kernel 的,可能内核级越狱也许可以改,所以就是几乎不可能(除非还在用 a11 之前的设备)。
支持一下
350 天前
回复了 RickRobust 创建的主题 Apple IOS 越狱打开 swap 的可能性
@noahhhh 这倒是
@jim9606 oom 的 m 一般也都是 dram+swap 吧,比如原来 3g ram ,加上 2g swap ,他 oom 的标准也会相应变成 5g ,也就是一次可以申请超过 3g 的内存。另外关于 ssd 的问题,现在 ssd 寿命基本都是上百的 TBW ,这个寿命在相对移动场景更恶劣的 pc 上(大量文件交互、swap )也是相当够覆盖设备的寿命周期( 3~5 年),而在移动设备场景下数据交互肯定是更少的,那相比于移动设备本身的寿命风险(意外损坏、电池老化、甚至屏幕寿命),肯定不是瓶颈。
350 天前
回复了 RickRobust 创建的主题 Apple IOS 越狱打开 swap 的可能性
@noahhhh 我简单看了一下 xnu 的代码,确实有 swap 相关的实现,只能说也是刀法的一部分了,就是不知道 ios 的内核是原本就有 swap 功能还是通过某些编译选项关掉了,感觉讨论的很少。

@pendulum 是的,另外还有电池,假如可以破解循环次数写入,这样不限次数换电芯,这两个解决换机瓶颈就没有了。
@yyysuo
@IITII
@Jacksu 了解了,谢谢
PE ,用了 AOSP Mods ,去手势操作小白条+状态栏网速显示+隐藏图标(如 VOLTE )。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4381 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 01:02 · PVG 09:02 · LAX 17:02 · JFK 20:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.