最新消息:

为什么同样是8G运行内存,Windows能同时开一大堆后台进程和前台应用,而Android不可以?

编程 eben 来源:知乎 159浏览 0评论

因为Windows上运行的是一个个进程,Android上面运行的是一个个操作系统

其实除了抖机灵之外,这个答案其实还双关了少量计算机的知识:

操作系统(英語:Operating System,縮寫:OS)是一组主管并控制计算机操作、运用和运行硬件、软件資源和提供公共服务来组织用户交互的相互关联的系统软件程序

其实现在微信小程序、支付宝小程序、百度小程序等等,提供的接口和功能已经覆盖了上面这个OS定义:“控制计算机操作、运用和运行硬件、软件資源和提供公共服务”。唯一的“区别”就是这些小程序不是native的,啊,既然安卓微信也不是native的,那还有什么区别呢?


作者:老龙友
链接:https://www.zhihu.com/question/429760478/answer/1569478643
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原因有几点:

1,win的设计初衷就是要保证多任务。

win本来就是一个重量级的多任务系统,设计它的目标,不仅仅为了生活娱乐,还要有生产力,所以win肩负的任务繁重而严肃。

众所周知,win是从DOS发展而来,DOS时代,内存是非常奢侈的东西,用户经常会因为『out of memory』而无法运行一个应用程序。

到了win时代,Win自己就是个吃内存大户,留给应用程序的内存更窘迫了。微软认为这种内存不够的状态还会持续相当长时间,甚至人类可能永远面临内存不够的窘境。

所以微软使用低成本的硬盘存储器来作为虚拟内存,补充内存的不足。这种做法,本质上是通过对性能的妥协,而解决内存不足的问题,也就是用时间换空间。

因此,win的特性就是,只要给了操作系统所需要的最低内存,而硬盘空间又够,就不会出现『内存不足』的问题。

谁也不知道win上面正在运行的某些肩负生产力的应用程序对用户有多么至关重要,因此它们绝不可能允许被操作系统擅自关闭。除非用户下达指令,否则win会坚决在其生命周期内捍卫其稳定运行。

另一方面,用户对win的应用程序响应缓慢(不能快速实时响应)的容忍度非常高。比如花十几秒钟才打开一个word文档……这多少有历史原因:用户早就接受了win是一个庞大而复杂的系统,当然会缓慢;另外用户也接受了一点:既然享受了『无论内存多窘迫、应用程序都不会被操作系统随意杀掉』的好处,那么付出一点响应缓慢的代价也是值得的。

2,安卓的设计初衷正好和win相反。

相对比来说,安卓操作系统是一个轻量级的操作系统,它设计的初衷就没有当成是一个生产力系统,也没打算运行那么多的APP,实际上安卓操作系统的火爆是远远超出了当年设计者的预料的。

内核基于Linux的安卓,理论上可以支持虚拟内存,但一般默认并不开启。原因是:

(1)安卓就没把自己当成一个彻底的多任务系统。大家知道,由于屏幕太小,实际上任意时刻只有一个应用可以呈现在前台,而一个应用一旦切换到后台,很可能因为内存不足而被杀掉。这种情况在用户看来是『可以理解』的——既然没有肩负严肃的生产力任务,只是搞搞生活娱乐,杀几个后台任务也没什么大不了的。

(2)与此同时,在快速实时响应方面,用户对安卓的容忍度却特别低。因为手机这种设备本来对实时响应特性要求特别高,比如打电话这种操作,在功能机时代,这是一秒钟都不能延迟的,马上按键马上拨号。而在安卓系统里,拨号模块本身也是一个APP,也要受到系统性能的限制,也可能出现响应缓慢。

所以安卓宁可杀后台也要保证响应速度。实际上手机这几年几乎一直就在解决响应速度问题。你看Intel每年在慢慢挤牙膏,搞得PC平台性能多年裹步不前。而高通、三星、苹果、华为可没闲着,都拼了老命在升级处理器,疯狂提高手机内存(RAM)容量和存储器的速度。两三年前EMMC存取速度才100~300MB/S,现在的UFS3.1已经达到了3000~5000MB/S,这可都超越摩尔定律了。

硬件厂商这么拼命,谷歌也没闲着,从安卓4.1的『黄油计划』(意思是要让安卓的操作变得顺滑)开始,几乎每一个版本升级的主要任务都是为了解决响应速度(卡顿)问题。

说点题外话:早期安卓卡顿是先天造成的,因为JAVA运行在虚拟机上……你懂的。现在看来,当初安卓的很多特性设计并不合理,但好在安卓不是一个可以随意安装的操作系统,所以一些不好的东西可以随着设备的淘汰而淘汰。换句话说,安卓不太需要像win那样去背一些沉重的历史包袱。

时至今天,安卓手机的这个先天缺陷实际上仍未解决,但它靠着堆硬件和软件优化,在性能方面硬是追上了苹果,也是难得。

总结:

总的来说,题主的问题,之所以会出现这种现象,就是因为这两个系统设计的目标策略不同而导致的。一个要求运行的程序必须稳定不能随意被杀,而可以忍受响应缓慢;另一个要求响应速度必须快,而可以忍受内存不足时杀掉一些后台程序。

另一方面,也是由于硬件发展还没有达到足够的高度造成的。因为资源有限,鱼和熊掌不可兼得,那么肯定要有所取舍,就要根据各自不同的使用场景来决定如何取舍了。

安卓系统上面跑的是微信等各大app全家桶

他说他是乱调度的。他可不是乱调度的啊,小程序,守护进程,高级权限,训练有素。后来他说他其实是个虚拟机。看来是,有备而来。这些app,不讲app德,来骗,来占用我8G的内存,这好么 这不好。


作者:Undefined咸鱼
链接:https://www.zhihu.com/question/429760478/answer/2306919176
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

首先是国内软件不守规矩。

qq都内置虚幻引擎了,安装包快1g,赶上win上的生产力软件了(老版本cad),qq什么时候才几记得他只是个即时通讯软件。

不只是吃内存,还疯狂吃硬盘,微信qq缓存几十g不是闹的,什么都缓存一遍还不清理。聊天记录迁移时候也没几十g啊。

不是说国外月亮圆,人家app逻辑就是该干什么干什么,你想要其他服务可以安装同公司的其他app去(比如谷歌微软旗下一堆app,烦是烦,但是可以选择性安装),不想要就不安。再加上不滥用权限,守规矩。

国内BAT为首一个比一个毒瘤,非得一个app包打天下,恨不得一个app囊括旗下所有业务,还不守规矩,瞎启动,瞎占用后台,疯狂吃资源,不卡才怪。

其次是win是为多任务为生,pc操作系统往上追溯到plan9开始就是考虑多任务多用户的。

而安卓由于屏幕太小问题不注重多任务,更专注于保证一两个前台进程流畅性。

当然这也和厂商的激进杀后台策略有关系,安卓8之前时代安卓手机到手第一件事就是刷绿色守护,现在很少了。那时候安卓后台管理很松,不手动杀程会造成内存爆炸和卡顿,落了个坏名声,然后国内rom厂家开始了激进的杀程策略,有好有坏吧。卡是很少卡了,缺点是你打开微信小程序填东西,前脚刚切出去看需要填的资料或者验证码什么的,后脚就给杀没了,然后全部重新开始填,当然这个锅微信的背大头就是了orz。

顺便吐槽下微信小程序确实方便也情有可原,QQ搞小程序干嘛,点开个知乎或者b站链接都直接跳到相应小程序,中间的卡一下,大部分人对qq小程序没那么多需求的。现在又开始为了升级版3d超级qq秀塞了个虚幻引擎进去,无力吐槽。

为什么同样是8G运行内存,Windows能同时开一大堆后台进程和前台应用,而Android不可以?-2

作者:陆陆叁拾陆
链接:https://www.zhihu.com/question/429760478/answer/2719262808
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

国内好多软件都这样,全量安装,不管你用得着用不着。

举个栗子,最近在安装安防平台,海康、宇视、大华,他们都只能安装在自己定制的CentOS上,其他Linux发行版本不行,包括原汁原味的CentOS,而且还有个毛病,给你一个全量安装包,4.6G,但是你只能最小化安装,实际上能用到的东西就只有不到500M,我先用某种一年生植物问候一下他们;其次是安防平台,海康的提供的安装包12G,要求最低配置16核2.6GCPU,64g内存,安装完需要60G空间,实际上需要的服务只需要双核CPU,8g内存加1.2G空间就行了,但是没用,他会把你用得着用不着的服务全给你,包括门禁、卡口、电梯什么的都给你装上,不用也要占你的资源,还卸载不掉,宇视的要小一些,但是我就不明白为什么我就接个视频信号上来,非得让我装一个公安视频图像系统,且只支持windows下应用,Linux桌面不能用,再次用一年生植物问候他们一下。

至于手机应用软件,现在是个软件就可以小额贷款,打开软件在显示开机广告时候不敢动,手机晃一下给你开奶茶东,某宝,手指碰一下屏幕给你开奶茶东,某宝,要不就是你得交钱才能看,交完钱又提示必须某会员才能看,连会员都是套娃一样,不榨干你的钱包都不好意思说自己是资本家。

网页端应用做的跟屎一样,甚至某咸鱼都不做网页端了,只做app,嘚瑟的你咸鱼还想翻身啊!

而且,互联网行业的资本家对国内软件行业的打击也是巨大的,一个软件生命周期就几个月,问题没有充分暴露就淘汰了,所以到培训机构学个快餐式的开发也能上手做软件,几天思考能用几百行代码实现的功能他们用这几天时间不假思索的给你堆出几万行代码来实现,下一个人一接手,这写的什么啊,我重写,然后一个软件中充斥着大量不能使用也不敢动的代码,要我估计,有些软件的冗余代码能达到90%,然后结合某聊天软件脑残的文件存储功能,你买个128G的手机一年就得换。

说到这里,还有一个现象不知道大家注意到没有,那种弹出式摄像头手机没了,因为某些软件在使用过程中会偷偷拍照,所以弹出式摄像头你能发现哪个软件在偷偷拍照,非弹出式你就不知道谁在用摄像头了,这也是资本家在作恶。

差不多了吧,总结一句话就是,国内的软件企业大都是在作恶,罄竹难书。

转载请注明:落伍老站长 » 为什么同样是8G运行内存,Windows能同时开一大堆后台进程和前台应用,而Android不可以?

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址