| |
|
知识库 -> 数码 -> iOS的墓碑机制这么厉害,为什么Windows、Linux不采用呢? -> 正文阅读 |
|
[数码]iOS的墓碑机制这么厉害,为什么Windows、Linux不采用呢? |
[收藏本文] 【下载本文】 |
Windows和Linux也用上墓碑机制,4g内存当8g用,他不香吗? |
来,设想一下 你刚刚完成了一个大模型运算的设置,按下“开始计算”按钮。 瞬间,你工作站的4颗每颗56核112线程至强铂金立即有440个框框显示“100%”,8个TB内存被吃掉了7个半TB。 大模型运算程序预计此次计算需要耗时约3小时。 看看表,算完刚好上午下班。于是你打开浏览器,点开你乎吹水摸鱼。 等到上午快下班切回“大模型运算程序”时你才发现Windows的墓碑机制起作用了,丫杀掉了占用了440个线程以及7TB内存的“大模型运算.exe”。将算力和内存腾出来让你更好的“吹水摸鱼”。此时此刻,大模型运算的进程还是不足1%,预计耗时约3小时。 你要如何跟下午等着要运算结果领导解释? 真正输出生产力的东西,不要搞什么花里胡哨的机制让“资源”看起来够用。 |
希望你能了解, 墓碑机制是性能不够强的无奈之举, 绝不是什么未来方向。 |
你是windows操作系统, 现在有以下8个进程正在运行: YDF897HF894395JU9GJ0FGH70U466668888GJ9043U5J烫烫烫烫烫烫烫烫烫烫43578945FG709FDG097 其中有一个进程是客户正在进行的大额国际期货交易,还有一个是QQ上已经进行了3个小时的商业机密文件的传输 —— 作为操作系统,你不认得前面那个交易软件,甚至觉得它有点鬼鬼祟祟;你认得后面那个QQ,但你只知道QQ是个聊天软件,你无法分辨用户当前有没有在进行什么重要的交流。 另外还有一个进程在这次开机的一个星期里都没动静,完全是占着茅坑不拉屎。该进程主要作用是当家里的报警器响了之后,自动弹出提示并传递画面给安保公司。 余下五个进程里,首先是三个相对有用的进程:微信、知乎网页、文件浏览器。在微信中,用户正在等待老板的指令;在知乎网页中,用户刚刚忙里偷闲码了5000字,暂时还没保存草稿 —— 作为操作系统,你勉强分辨出它们就是普通的一个微信、普通的一个网页。 余下的两个里面,一个是某国产输入法窃取你隐私的伪装进程,另一个是某电脑管家防止其它流氓软件抢地盘的保护进程。这两个进程相安无事,各忙各的正事。—— 作为操作系统,你观察着跳动的字节,觉得这俩进程工作量饱和,且尽量降低自己的资源占用,一看就是正经码农写的正经软件。 —— 现在,内存快爆炸了,这不优雅,请立刻马上干掉其中一个进程,以便给用户带来「美好得像iOS一样」的丝滑体验。 |
内存够的情况下哪需要这些技术 墓碑机制纯属为了在内存容量上缩水省钱抠出来的 当年wp为什么用那是因为wp那些机器都低端成什么b样了那配置 但凡内存容量够用,都不需要墓碑 所以反正加内存那么容易,要什么墓碑 |
我在Windows跑一个渲染,此时,一看预计半小时,我最小化到后台,戳开知乎吹水,半小时后发现墓碑了。。。 |
在桌面生产力平台上使用类似 iOS 的墓碑机制并不是一个最优解,因为墓碑机制不适用于更加复杂和多样的桌面使用环境,或者说 Windows 或 Linux 这种桌面操作系统使用后台多任务机制更加合理。 |
|
墓碑机制:用到谁了谁出来 要彻底弄清楚这里面的技术细节,就需要从墓碑机制的作用和桌面操作系统的使用环境入手。 墓碑机制的作用大概可以分以下三种: 资源回收和释放:墓碑机制可以自动检测和回收未使用的资源,避免资源的浪费和占用。这有助于提高系统的资源利用率;系统性能优化:通过回收未使用的资源,墓碑机制可以减少系统的负载,提高系统的响应速度和性能;内存管理:在移动操作系统中,内存是一种宝贵的资源。墓碑机制可以帮助及时释放未使用的内存,以提供更多的可用内存给其他应用程序使用。 这种作用对于桌面使用环境来说无足轻重,甚至有些“碍手碍脚”。还是简单举例吧: 桌面使用环境复杂,大多数时候都是接入电源使用的,不需要考虑通过墓碑机制降低处理器的负载来优化性能和功耗;因为不考虑功耗问题,因此桌面使用环境可以“力大砖飞”,后台多任务并行,可以充分释放性能。桌面设备可扩展性强,处理器不够用了可以换处理器,内部不够了可以单独加内存,可以不考虑墓碑机制。墓碑机制本身存在一个弊端,就是当一个资源被标记为墓碑时,系统需要将其回收并释放。这个过程会需要一定的时间,在某些时候可能会降低相应速度。 归根结底,这个东西只适用于手机等移动端设备,放在桌面操作系统上反而成了累赘。 |
机制厉不厉害,不是靠嘴上喊的,得看能不能解决问题。 墓碑机制最关键的目标,是解决移动端设备的能耗及性能问题,简单而言就是冻结非激活状态的应用,把内存切页到低成本区,等到应用变成激活状态后再对其进行恢复,这样就能把更宝贵的CPU资源及高速运存让给激活状态的应用,把好钢用在刀刃上。 当前windows端主要用在生产环境上,基本没有什么节能的需求,大多桌面端性能也远好于移动端,在实际使用过程中,经常需要在多个应用中频繁切换协同工作,如果使用墓碑机制,尤其是一些占用内存较大的应用在激活恢复会有明显的延迟,这个显然是不可接受的,因此墓碑机制反而是个缺点,相对的,大多操作系统提供的进程调度机制,可以把一些重要的应用分配更多的调度资源,同时虚拟内存机制也可以很好处理内存的切页调度问题,大多数场景中也不会出现运存资源不足的情况。 至于linux桌面端大多数都应用在服务器领域,服务器程序基本都需要长时间稳定高并发运行,并且几乎都是多个服务同时运行,在这里引入墓碑机制,只能说公司是不是和你有什么深仇大怨。 |
微软曾经「寄予厚望」的自研手机系统 —— Windows Phone 就用了「墓碑机制」。 「墓碑机制」并不厉害,只是对于运行内存偏小的手机来说,这种内存管理机制有一定的优势而已。 iPhone 的系统是 iOS,与安卓系统的内存管理机制确实不同,墓碑机制可以让 iPhone 在前台运行 APP 独占大部分运行内存,之前打开过的 APP 在后台就不会被关闭而是以特殊方式冻结,但这个后台冻结肯定也是有上限的,所以 4GB 的标准版也会出现“杀后台”情况。 从本质上来看「墓碑机制」的话,iOS 系统的内存清理并不是真的「清理」了内存,而是先将其他软件「挤出」内存后再把内存让出来。 所以这种内存管理机制并不适合电脑,电脑端内存的意义是为了让 CPU 能够更高效的读取数据,才将程序直接存放在内存里。 如果采用「墓碑机制」,不停的将内存里的程序全「挤出」,等需要的时候还得先从「外存储」调到「内存」……然后开始读写?你说这个方法到底是更快了还是更慢了呢?还不如给电脑加大内存来的爽!对吧。 另外也别说 6GB 的 iPhone 就足够用了,今年的 iPhone 15 系列 Pro 机型应该会升级到 8GB 了。 安卓机进入 16GB 时代主要是由于国内安卓应用生态混乱,没人管。 所以无良厂商就会充分利用安卓系统的开源性 —— 他们肆意修改系统权限在后台互相唤醒添加各种黑心服务产生大量碎片化数据…… 安卓的后台进程会比 iOS 更多一些,而且有些后台进程有可能占用比较多的系统资源,但是如果能像谷歌安卓应用商店那样 —— 在对应用行为的规范和管理上更加严格,根本用不到 16GB 运行内存。 |
|
|
冷知识1:内存插槽不一定非得空着,你可以把它插满。 冷知识2:人的饭量是有限度的,App占用内存也一样,除非你是Oracle这种东西。 热知识:Apple自家的MacOS也没有采用 |
墓碑这B玩意你还觉得厉害?你下载过东西没有? 你高高兴兴找了个高清电影丢进下载工具,然后你打开steam玩了几个小时大表哥2,等你玩累了回到桌面准备看会电影,点开下载工具,短暂等待后界面出现,上面显示“正在初始化下载任务”,请问此时你什么心情? |
Windows和Linux也用上墓碑机制,4g内存当8g用,他不香吗? 不香。 劳资配电脑32G内存起步,主打的就是一个不关Chrome标签。而且标签要多到每个标签只剩下图标,甚至图标都显示不全。 以下为正经回答。 移动设备关闭后台进程主要目的不是节省内存,而是省电。而台式电脑插着电源,不用省电。笔记本电脑虽然用电池,但是对续航时长的需求也没有手机那么高。 |
把“抠”说得这么高大上你还是第一人勒 我PC上有一个游戏,我特别吐槽 一般情况下游戏启动后我可以切出来,该干嘛干嘛,等它真正加载完了以后再切进去。 这个游戏偏不,等你切进去它会重新开始加载,%¥*%……&%&(*……% |
|
而且一个游戏安装包也就800MB,加载游戏进入要1分钟,你敢信? 但是没啥合适的游戏玩,等就等呗 如果Windows上玩这种墓碑机制,我立马换阵营,虽然换的时候很痛苦,但是痛苦之后还有高潮。 迅雷的离线下载很爽吧? 把我给恶心了,我直接7年都没用,我自己去找可以用的磁力链,一样可以玩。 支付宝的花呗也是相当恶心,搞到后面账面都不对了,直接还完注销。 我的下一个目标就是注销京东白条,狠起来谁怕谁啊,某些平台不要太把自己当回事。 京东白条没啥毛病,但是京东金融那个APP打开以后都找不到自己要的东西,你要的记录翻半天,可能还不好使用,也就是做审计就很麻烦,看来也是有花呗那种趋势了。 而且当你付款的时候总会很猥琐的给你弹出减免几十元的活动,一看就是让你借款。 我用白条不是因为需要资金周转,只是图方便,你让我不方便还准备阴我? 那么我只能不跟你玩 |
作为手机答主,刺客我对广泛应用于电脑的Windows、Linux知之甚少,下面还是以咱们手机用户最为关心的手机安卓系统进行说明吧。 使用墓碑机制的iPhone得以用小内存来超越安卓的大内存,那安卓怎么不也使用墓碑机制呢? 其实安卓也支持墓碑机制,两者的区别就在于iOS退到后台之后,内存和CPU都会被释放。 而安卓却允许开发者使用service组件长时间驻留后台,只要一直开着service,那么应用程序就会疯狂防止被杀后台,内存就一直得不到释放。 划重点:安卓没有统一的推送,即使有iOS这种墓碑机制也没有什么意义。 |
你对手机说:这个应用给我留着,我切出去干点别的,一会儿还回来。 手机:我觉得不需要给你留着。 你是不是觉得这个手机特牛逼? |
我要是说,Windows、Linux其实也有类似的机制呢?无非就是表现形式、激进与否不同罢了! 比如任何内核抢占式的多任务操作系统,内核线程都可以互相抢占资源,被挂起的线程还不是乖乖的封存现场,让出寄存器、让出CPU吗?哪怕是申请的内存,也不见得就能真的能够拿到物理内存。更不用说用户态和中断了吧! 只不过这种切换相当短暂,而非常态罢了! 再进一步,虚拟内存其实也有类似的作用。macOS下的8GB运行内存依然堪用,依靠的不就是用算力和时间换空间嘛! |
|
2023年的今天,8+256的Mac mini不就是工业垃圾吗?59 赞同 · 24 评论回答 |
|
其实只要搞清楚一个最根本的问题,这个问题自然就不是问题了。这个根本问题就是,人本质上并不能很好的,或者说并不能很轻松的并行完成多项任务。而手机操作系统本质上是需要人时时刻刻参与进去的,大部分时间里,8核的CPU,也就一两个核配合人在玩罢了! |
|
现代化的操作系统,都可以称之为多任务操作系统。表现上就是你可以一边播放音乐,一边下载文件,还可以一边发邮件。 可是吧?操作系统是多任务的,但是人本身却基本上是单任务的。不管你信不信,哪怕是仅仅面对一个手机,你一个具体的时间内,也只是聚焦于单一的应用。哪怕你搞几个悬浮窗,你其实也只是在不同的时间里面,把注意力放在不同的窗口上罢了! |
|
所以这就可以得出一个初步的结论:手机这么个小窗口下,本质上还是个单任务系统,或者更确切的说,它大部分时间里就是一个单前台系统。 而macOS、Windows和Linux等桌面系统就完全不同了,你可以给这些操作系统外接8个显示器,每个显示器上实时运行不同的软件。举个简单的例子,你可以把外接的8个显示器放在8个不同的房间,用8个不同的视频软件分别播放不同的影片。只要你愿意,你甚至可以在每个显示器上同时播放多个不同的视频。 |
|
这叫啥?这才是真正意义上的多前台多任务操作。如今移动端除了笔记本以外,最接近的就得是iPad M1/M2支持的台前调度了,可以同时前台运行8个应用呀! |
|
当然,只要你把前面说到的显示器给扔了,那么对于macOS、Windows、Linux等系统来说,那就是真后台并发运行。最多只是你看不看得见,以及系统还需不需要绘制UI的问题罢了! 而国内Android玩的就是这套真后台机制,所以往往需要更大的运行内存。因为Android上即便用户看不到微信,其实它也在后台运行着,一定占用内存,一定占用CPU资源。 但是稍微细想一下,当我把微信切换到后台,那它还有什么用呢?其实答案很简单,那就是接收消息。有意思的是,手机端的大部分应用程序,留在后台唯一有价值的作用,那就是和服务端做一些简单的消息查询任务。 注意,我说的是大部分应用,因为有些应用也会留在后台下载数据、播放音乐、导航等,这些当然还有继续运行的必要。 |
|
再比如,某些流氓app还可能在后台监控系统通知,帮助用户掌控其他app的数据等,当然也有“需求”在后后台继续运行。 但是不管怎么说,当大部分应用驻留后台的作用只是为了接收消息,那么这件事情就可以让专门的程序来做,准确的说,应该是用一套专门设计的机制来解决这个问题。这种想法真的很自然而然! iOS其实就存在这样的机制,苹果借助APNs服务器接管所有应用程序的消息,然后分发到手机上以弹窗的形式提醒用户。类似于iMessage的玩法: |
|
所以问题就简单了,所有用户不在前台运行的应用程序,本质上都可以释放绝大部分资源,甚至直接从内存中清除掉。以微信为例,有了这套机制,用户手动清除微信后台,也一样可以收到好友的消息。 注意,你收到的微信弹窗,本质上是iOS显示给用户看的,而不是微信这个app展示给用户的。只要你不去点击这个弹窗或者打开微信app,其实iPhone上的微信根本就不知道有这个新消息。 至于iOS其实也有后台刷新能力,这个主要解决的是提前加载新数据,本质上属于优化体验的范畴,只可惜国内的大部分app做的都不咋地。 iOS 中的后台应用刷新到底有什么用?关了影响明显吗?怎么判断要不要关或开?172 赞同 · 27 评论回答 |
|
|
|
到此,是不是就已经明白,所谓的墓碑机制,前提条件是让app切换后台以后,并不需要真正占用系统资源,也一样不影响基本功能。而手机这么个本质上还是单前台的任务操作系统,自然就可以在这个方向上优化。 有意思的是,原生Android借助GMS,其实也一样可以这么玩! 而在Windows系统上,且不说类似于APNs这么个统一推送的机制都不存在,就算存在微软也根本能力让所有的软件适配。更不用说,在Windows上,视频剪辑软件仍在后台渲染的时候,打开其他软件做点其他的事情,也是很常规的操作了。 |
|
Linux跑在服务器上的时候,更是上百个任务同时运行,某些任务长时间都能把CPU的某些核心跑满的节奏,它们对于系统资源的占用就是实打实的,并不存在让出资源的可能性呀! 至于所谓的内存越大越好,这种说法就是纯粹扯淡!因为在计算机的世界里面,从来就不存在资源够用的情况。非要说内存大的作用,那也只是可以用空间换时间和算力罢了! 而所谓的墓碑机制,更多时候其实是在用CPU换空间以及少量的时间换空间,类似于虚拟内存机制。你看某些12GB的Android手机,不也一样玩虚拟内存嘛!如果在iOS下,4GB的运行内存加上CPU偶尔50%开销,可以达到Android下8GB的运行内存加上CPU偶尔20%开销同样的使用体验,那么这个置换就是划算的! 至于为什么?咱不聊技术,不谈理念,不提环保,也不提苹果抠门省内存,就说一点,Android手机从极致性价比到如今的价格直追iPhone,不是没有原因的呀! 出来混,迟早是要还的! Latest Answers 如何选择适合自己的苹果手机?2024年苹果手机攻略。iPhone 15、iPhone 15 Pro、iPhone 14、iPhone 13如何选择?6.1、6.7英寸如何选择?128GB、256GB?1703 赞同 · 34 评论文章 |
|
iPhone 15和iPhone 15 Pro有什么差异?哪个更值得买?162 赞同 · 4 评论文章 |
|
2024年苹果电脑MacBook Pro M3/M3 Pro/M3 Max选购指南,尺寸、芯片、内存、存储空间选购建议一应俱全。496 赞同 · 28 评论文章 |
|
2024年iPad购买攻略,超详细解读不同型号到底有什么区别?378 赞同 · 0 评论文章 |
|
2024年苹果手表 Apple Watch选购攻略,一次性选到最合适的智能手表。材质、尺寸、表带、款型、蜂窝网、续航、防水,所有的纠结都有答案哈!2033 赞同 · 11 评论文章 |
|
|
你也就只敢提iOS,敢不敢提一下macOS? 电脑跟手机最大的不同就是任何一个后台挂着的东西都可能有大用。 手机后台东西掉了最多骂两句,电脑后台跑着的训练在我打游戏时暂停了我能把电脑砸了 |
你一边跑步一边呼吸。 大脑看你太忙了,在你把注意力全部放到跑步上的时候,主动帮你把呼吸进程扔给脑干。 这叫多任务。 大脑看你太忙了,在你把注意力全部放到跑步上的时候,主动帮你把呼吸进程掐了。 这是墓碑机制。 当然,如果你不用去管呼吸,大脑+脑干的开销肯定是更低了。 ios上,墓碑机制针对的就是那些不痛不痒的东西,所以掐了也就掐了,只是影响一下后台下载什么的。 然而win上linux上是真的在跑“呼吸进程”这种重要的东西的。 |
因为人家是正经生产力操作系统 windows可以做墓碑机制,但你tm能接受自己在知乎摸了一下鱼后台的代码编译/模型渲染/视频导出/小姐姐下载自动给你停了? linux你tm能接受A服务刚部署B服务给你kill了???? windows11感觉像是要B端C端分离,它不过是把非焦点任务放在小核慢慢跑,留出资源处理焦点任务,你看看多少人骂。你倒好,失去焦点直接kill了。。。 |
看了下基本都是营销号水平的回答. 首先, 苹果官方在 iOS 的开发者页面上, 根本没有所谓墓碑的字眼. 要说 iOS(UIKit)的多任务模式的话, 现在的主要对比是 Scene-Based 和 Life-Based. Scene Based 主要是考虑到像 iPadOS 上一个 App 可能会开出多个窗口, 因此不同窗口实例有着不同的生命周期. 这几个窗口也有核心的共享部分. |
|
iOS 这套生命周期机制, 主要的行为是: 应用失焦之后, 会进入前台的不活跃状态, 会降低自刷新的频率(ProMotion 机制就是利用了这点)在 App 到后台之后, 会给几秒钟的时间继续运行,苹果要求开发者在这几秒中保留状态, 并主动释放掉资源; 同时内存压缩机制也会积极地在后台应用中找到能压缩的页面 |
|
对 VoIP 和音视频等应用, 会允许继续刷新, 用户也会看到 banner 的提示, 如 XX 应用正在通话/导航, 或者是看到有内容在播放在允许后台刷新的情况下, 系统会不定时唤醒 App 更新内容(有个活跃度预测算法), 这样下次回到 App 的时候就不需要等待 App 刷新 这里再来说 Android. 其实 Android 如今也基本做到 App 一后台就停止. 然而在早期的时候, Android App 在后台还刷新 UI 那还是家常便饭. 然而后台的 App 持续刷新 UI 用户看不到, 就是纯纯耗电, 还会挤占前台 App 的资源. 后来才逐步提高限制. 虽然 Android 提供了服务机制, 专门用于 App 后台时的更新, 但是由于服务机制功能过于强大(比如接受各种系统通知), 进而就是多年前盛行的保活操作. 然后相比于 iOS, 苹果在 App 进入后台之后, 会要求 App 尽可能释放内存, 否则在系统内存不足的时候, 后台内存占用较高的 App 会被优先干掉, 再加上 iPhone 在提升内存容量这件事上很保守, 逼迫了开发者适配这一行为. 当然, 苹果也会要求前台 App 在内存不足的时候释放掉一些资源, 这点安卓做得并不好. |
|
|
|
虽然 Android 也要求 App 进入后台之后释放内存, 但是 Android 平台因为强制力比较低, 加上国产手机厂商特别喜欢卷内存容量, 导致国产 App 开发者不太有动力适配, 所以这一要求执行的不好. 桌面系统的话, macOS 在天然多任务的背景下, 10.9 的时候提出了 App Nap 方案. |
|
所谓 App Nap, 就是当用户看不到应用的时候, 会降低他的绘图频率、CPU/IO 优先级、计时器频率, 从而实现降低功耗、把资源留给前台的作用. |
|
|
|
不管是 iOS 的后台机制, 还是 macOS 的 App Nap, 对于非 VoIP/音视频/自带驱动的应用, 如果想要保持后台的上传和下载行为, 就必须用苹果官方的 NSURLSession. 在这种情况下, 上传和下载速度会受到平台的统一调度(换言之, 后台 App 的上传会比前台的慢一些). 然后再来说 Windows 这边. 早年 windows 这边搞了个处理器计划, 这个调度差异主要是为了区分 server/client 机器而定的. |
|
而关于 Windows 的后台资源限制, 仅仅只对 UWP(C# 写的, CoreCLR 上运行)的应用有效. |
|
|
|
当然 Win32 窗口在聚焦的时候也是有优先级提升的, 只不过后台的应用不会像 macOS 那样降低刷新率、降低 CPU/IO 优先级, 同时更主动的内存压缩、SWAP out 来得激进. Linux 的话, 得看具体是哪个桌面环境. 据我所知, KDE/Gnome 都没有类似的资源管理机制, 连前后台应用 renice 这样的操作. 因为 Linux 上应用开发非常模块化, 因此对于桌面/窗口管理器来说, 资源管理就比较困难而麻烦. 目前只有 ChromeOS 的桌面做了比较激进的后台资源控制, 因而得以跑在配置特别低的 ChromeBook 上. |
Windows的UWP支持墓碑机制,WP也支持,这俩玩意都是正儿八经Windows。 在移动操作系统上墓碑+最小化运行端制是最优解,但在通用桌面操作系统上则并不是——当然这不意味着墓碑制在低配设备上就不好用,实际上是被牺牲了的。 移动操作系统上适用墓碑制的最基本前提就是手机屏幕尺寸并不足够有效显示2个以上应用——这个我觉得有手机的人都知道。 同时因为无法正常显示这么多个应用,且不显示时,应用的所有UI interface是不能被操作的。 而一般手机应用并没有需要后台极大量计算力的需求。 所以实际上在后台的应用——无论是确实关闭还是挂在后台,潜在的需求都是简单的。 也就是能够收发信息,这个是最基本的,进一步来说是维持一个能处理信息的比较小的服务,这就行了。 所有前端其实都是不需要的——因为这只能带来极高的运算电耗且会虚占内存。 而且手机上客观有个需求:相比于大部分桌面应用,手机应用即使应用并未启动,很多时候也需要收发消息,例如有直接通信或者推送功能。 你此时也做不到所有应用全部打开挂在后台——这意味着多少内存都不够,如果你有100个应用至少得占20-30g,实际上也没有这种后台必要。 属于这样的需求下,最优解模型是收发消息/处理消息服务集成进机器,这一部分是活跃的。 应用本身是关闭,根本不存在于内存或者墓碑的,这才是真合理的做法,也就是后台即墓碑/关闭。 桌面主要是高性能端的诉求和墓碑是相反的——需要及时响应以及后台运行高性能计算的能力,如果此时墓碑的话会打断计算。 所以内存策略机制是反的,宁可使用SSD扩展内存空间。 但系统级以外来说。 非高性能端的chrome已经上了墓碑标签页机制节约内存,macos的safari也是同理。 同时chrome/edge也集成了基于浏览器的全局推送中心,并不是说不使用墓碑-推送这一个机制,如果你把web标签页作为单个应用,浏览器是一个应用组的话,这就是很明显的墓碑。 一堆人说不使用是完全失实的。 所以这套桌面级就是真有在用,但很难普及到系统这一个层级,因为和系统设计目标有冲突。 如果Windows分pro和标准版两个策略的话,大概率就是有这么个墓碑机制在的,一般消费级用这个其实体验是不错的,所有软件都有即时通讯,不需要专门打开。 问题现在没有,pro和标准版只是功能开关。 |
墓碑机制是我听说过或者见过的最糟糕的机制,没有之一 某种程度上为了前台的流畅,暂停后台我认为是非常不错的考虑 但是墓碑就算了 正常人用电脑的都会同时跑很多程序,比如QQ、微信、邮件、听音乐、浏览器之类的 关注QQ的时候音乐就暂停了? ---------------补充--------------- 体验了IOS一个月,墓碑机制就是垃圾 虽然我知道有办法可以后台设置保活, 我会用帆书来听一些书,有时候在车上什么的才有时间来听,车上信号一般不好,所以会下载下来,实际情况是,下载了,切出应用,再切回来,您猜怎么着,下载是一点没动。一般情况不常用的软件也不会专门去设置后台保活的 -----------2023年12月24日再补充--------- 除了下面这几方面,可以说苹果什么都好 墓碑机制彻头彻尾的垃圾 信号垃圾,各种转圈 没有右滑返回 自带的拨号没有模糊搜索 准备回到安卓的怀抱了 |
这要看什么平台的应用…… 当年我们塞班用户为了证明实时后台的优越性,最喜欢举的例子就是拿着 128MB 内存的机器后台挂着几十个实时运行的应用玩。 当然当时塞班应用是出了名的难开发(比如严苛的内存管理),所以 iOS 支持第三方应用后不少开发者都跑了。 |
吹啥也不能吹苹果的杀后台啊。 玩着手游,来条微信,回还是不回? 不回?万一是领导或者女朋友呢。 回?切回游戏重新加载页面,那感觉,很酸爽。 |
当你需要更新《原神》发现还要下载40分钟时,你就该骂墓碑机制有多气人了…… |
因为墓碑机制并不厉害,厉害的是让开发者去遵守墓碑机制。 iOS的墓碑机制建立在开发者应用必须上架苹果APPstore的基础上。 墓碑机制,虽然不等同于直接杀后台,但是后台的应用处在冻结状态,对于软件厂商而言,与杀后台是无异的。 软件厂商都喜欢赖在后台不走,这是互联网公司的流氓性质导致的。 安卓也有墓碑机制,安卓厂商也在搞自己的推送系统,结果也没见多少APP去适配,安卓机现在的内存普遍8gb起步,千元机上都少见6gb,因为现在6gb安卓手机真的不够用了。 手机后台内存占用多,从来都不是技术问题,而是管理问题。 手机厂商,软件厂商,用户在进行三方博弈,其中用户是最弱的。 苹果作为手机厂商相当强势,可以同时管理用户和软件厂商,苹果手机只能从应用商店下载软件,而且固定抽取APP的30%流水,用户也受到苹果的管理,只能在APPstore下载应用。 安卓厂商也搞了自己的应用商店,但对软件厂商和用户并没有强制力,如原神渠道服只上了小米应用商店,但不影响其它手机品牌用户也能玩原神,如果哪天华为要制裁原神,我们原神玩家绝对不买华为。 |
墓碑机制的出发点是,控制后台进程,减少消耗CPU、内存、电量。而windows、linux作为桌面操作系统这些资源并不紧迫,而且反复退出/唤醒,也会降低用户的体验感。所以墓碑机制多用在“资源紧张”的移动终端。 原理回顾: 「墓碑机制」原本就是指IOS系统上的一种多任务的处理策略。ios系统对应用app有严格的管制和接口;而安卓对app则要么管理严、要么松。所以,造成了根源就是——「国内手机厂商对于应用开发者的约束手段非常有限。」 一、ios的后台机制 1)后台、非活跃状态->暂停状态 在IOS平台,手机的资源会优先向台前且正在活跃的进程倾斜,而被用户放在后台的程序会被设定为非活跃状态,非活跃状态在经过一个恒定的时间之后(10分钟),就会被设定为暂停状态。 2)暂停状态->闪存应用墓碑 在该状态下,其后台进程不会占用CPU的资源,只会占用内存容量。而当系统监测内存容量紧张的时候,该应用也会被杀掉。但是系统会将其所处的状态保留在闪存当中(可以理解为虚拟内存),这就是“应用墓碑”,下一次用户在打开的时候,该状态会被重新赋予。 这就是苹果的后台处理机制。 |
|
二、安卓的后台机制 1)原生安卓系统 内存处理机制其实也是非常完善的,它同样也会将进程分为很多个层次,有前台进程,可见进程,二级进程,隐藏进程,内容提供器,空应用等状态,这些状态的优先级依次减弱。 当系统检测到内存不足的情况下,系统根据APP优先级的不同将应用进行分批的处理,以此来释放内存,这也就是大名鼎鼎的LMK(Low Memory Killer)机制,这套逻辑本质上没什么问题。 2)ios省电、省内存的原因 IOS系统上的后台系统在10分钟无操作之后,就不再需要消耗CPU资源。所以,相比较而言,IOS的做法会更加的节省资源,也就会更加的省电,这就是为什么iPhone13到现在还敢用4G运存,电池容量明明那么小却比安卓机器更耐用的原因。 3)非原生安卓系统就不提了,后台机制管理的混乱,这里省略。个人如果购买安卓手机,还是要买原生的。 |
在现在这种情况下,采用墓碑机制收效甚微,甚至不如花两百加条内存来得痛快,还能拉动相关产业链。 兄弟可以看下今年618内存的价格崩成什么样了。 用安卓的朋友,某些渠道两千块已经能拿下16+1T的配置了,你确定4G+墓碑机制的苹果能干得过16G的安卓千元机? 用Windows的朋友,今年花300就能买到两条16G组个双通道,那后台不随便挂几个3A大作?还是实打实的真后台。 就这,IOS行吗?开个王者,开个吃鸡,再开个原神,退出去聊微信不看地球我喊你一声爹(doge)。 苹果的墓碑机制像是缺粮缺衣的时候,啥都要省着,计划着用,每个APP都严格按照管理者的要求领取空间资源。 但当粮食丰裕起来的时候,APP们就不用担心这个问题了,苹果这边还在为4G的内存扣扣搜搜地规划,安卓这边已经开始“铺张浪费”了,主打的就是一个让APP敞开了占后台,我内存大,你占不完。 |
|
(当然并不是鼓励APP厂家这种行为,但就目前的情况看,大内存的加入,APP厂家、用户都能敞开了玩。) 墓碑机制在前几年内存资源紧缺的时候,还能拉出来吹一吹,但是3202年了,16G运存的风都吹到安卓千元机上了, iPhone的墓碑+4G运存使用体验真不如安卓的16G。 对以办公生产、玩厂牌大作为主的Windows们来说,更是如此,加几百就完美解决的事情,搞个墓碑机制膈应自己做啥,咱不缺内存,主打的就是一个铺张浪费。 哦对,甚至不用加钱,毕竟苹果动辄七八千的价格,已经够我买几十条16G的内存条了,买安卓不买苹果,剩下的钱拿来买内存它不香吗?运存在除了苹果之外的地方,真的不值钱。 |
|
|
手机:我这个墓碑制,可以让你用4G内存体验8G内存的效果。 电脑:那为什么不直接插4根16G内存呢? 服务器:因为4根16G不够用啊。 手机:阿米诺斯! |
Windows Phone是支持墓碑机制的,PC上的Windows不支持; IOS支持墓碑机制,MacOS也不支持。 10年前墓碑机制还是有用的,这个有用有个前提—手机内存小且应用不够复杂。这在桌面操作系统上是行不通的,比如你听着歌,看着网页,后台编译者程序,同时游戏还挂着机,微信,QQ也开着,过了会儿你想看看编译完没有,结果一看墓碑了,这不得诅咒微软一辈子硬不起来呀。 同样道理MacOS也不会用,现在大内存这么便宜还在吹墓碑多好,手机因此流畅,那我只能说打扰了。 库克不用大内存就一个字—抠! 你可能吐槽安卓厂商大内存还乱杀后台,这就是另一回事儿了,APP生态做的不好,这是IOS的优点。 |
其实你应该问问mac os为什么不用。 |
|
[收藏本文] 【下载本文】 |
上一篇文章 下一篇文章 查看所有文章 |
|
|
娱乐生活:
电影票房
娱乐圈
娱乐
弱智
火研
中华城市
印度
仙家
六爻
佛门
风水
古钱币交流专用
钓鱼
双色球
航空母舰
网球
乒乓球
中国女排
足球
nba
中超
跑步
象棋
体操
戒色
上海男科
80后
足球: 曼城 利物浦队 托特纳姆热刺 皇家马德里 尤文图斯 罗马 拉齐奥 米兰 里昂 巴黎圣日尔曼 曼联 |
网站联系: qq:121756557 email:121756557@qq.com 知识库 |