» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 22 12
发新话题
打印

关于内存和耗电,献给Android用户。

最近内存大小的问题又火了一把。各种说法不断出现,但由于广大Android用户可能不具备专业知识,他们很难区分哪些说法是对的,哪些不对。哪些最接近真实的谎言往往是危害最大的。于是我想写一些东西告诉广大Android用户一些知识,尤其是那些没有专业知识的Android用户,方便他们在今后使用Android的时候能具备一定的理论基础。

Q:问什么只说Android,不说iOS?
A:苹果已经把所有问题都考虑好了,苹果的做法完全符合我要说观点,所以不再阐述。

最近有一个最似是而非的说法:“内存当然是越大越好,内存大了,更多的APP可以留在内存里,不用重载,速度快,又省电。”,接下来让我们基于Android来讨论这个句话。
首先这句话里有对的部分“内存大了,更多的APP可以留在内存里,不用重载,速度快。”这句话虽然对,但是对于没有专业知识的用户来说,它夸大了效果。这里的速度快,仅仅是只载重新启动APP的时候。你比如说APP微信,在iPhone6 Plus上,它重启一般需要花2秒左右。其实我个人认为这2秒的延迟相对于你5-6分钟使用来说完全可以忽略,尤其是当你知道为了省这2秒,可能会让你的手机续航减少几小时的时候,你应该会认为牺牲这2秒完全是值得的,这个问题我们一会说。
现在我们来说说省电的问题。如果内存大到APP都能留在内存里,这样到底会不会更省电?从技术上来说,内存里有什么东西,对耗电的影响可以忽略不计,唯一有影响的是内存大小,内存越大自然要多耗电点,但是也不多。但是实际情况和技术上差别很大。感兴趣的读者可以做个实验,把笔记本接上电源,充满电,关闭休眠。然后你打开很多应用后不做任何操作,把电源去掉,靠电池供电。如果按技术上来说,这时候你笔记本的续航应该和不开任何应用程序没有什么区别,但实际情况是耗电会多很多。为什么?答案非常简单,现在没有哪个程序打开后是纹丝不动的,它们总会试着去运行点什么。请大家记住这么简单的一句话,运行才耗电,不运行不耗电的。具体来说,这么多“活着”的APP,它们会不断的向CPU发出请求,导致系统耗电大大增加。“活的”APP数量越多,Cache被刷新的就越频繁,Cache刷新非常耗电。

Q: 什么是Cache?
A:Cache就是缓存,CPU不会直接与内存打交道,因为慢;CPU只与Cache打交道,因为快。如果数据不在Cache里,Cache再问内存要。Cache很小,手机上也就几MB,所以后台随意一个激活运行,Cache就要大范围刷新,这时候非常耗电(可以CPU本身耗电相匹敌)。

那在手机上怎么办呢,最好的做法就是禁止一切不必要的程序运行。这也就是为什么很多人不厌其烦的杀后台进程的原因。那么问题来了,你把人家都杀了,你还配那么大的内存有什么用呢?答案自然就是确实没什么用。在靠电源供电的系统上,这就是客观事实。
我们再来看看苹果是怎么做的。iOS一方面会把那些不用的APP给禁止掉,另一方面极为严格的限制APP自动运行。不得不说,在移动设备上,这是一个非常良好的策略。很多Android爱好者故意搬弄是非,把PC上的策略直接套用在手机上,得出苹果是假后台等等的言论。话说得对不对呢?完全正确。但假后台就是在手机上最正确的做法。

Q:那以后电池技术有了革命性的进步,苹果岂不是一下子落后了?
A:所谓的“假”后台,本身就是建立在“真”后台的技术上的。几分钟内你切换到之前运行的APP上不重载,就能说明这个问题。所谓的“假”后台是在“真”后台的技术上建立起一套规则,这套规则对于APP来说是透明的,哪天苹果把这套规则去掉了,对APP来说几乎没有任何影响。

结论:在手机上,追求一个有良好资源管理方式的系统,比单纯追求硬件上内存大小,CPU核数,电池电量等要有意义得多,后者是在补丁上打补丁。


本帖最近评分记录
  • livealive 激骚 -6 反对 Rated by wap 2015-9-15 08:13
  • francisic 激骚 -5 反对 Rated by wap 2015-9-15 01:09
  • 熊抱禁止 激骚 -7 人身攻击 2015-9-14 21:40
  • lqmawei 激骚 -6 反对 Rated by wap 2015-9-14 19:57
  • atozwdwd 激骚 -3 精品文章 2015-9-14 18:55

TOP

posted by wap, platform: iPhone
引用:
原帖由 @thosetom  于 2015-9-14 13:40 发表
虚拟内存大神快说说6plus为什么忒他妈卡顿
卡顿的原因很多,建议你联系客服让他们给你做个确定的分析。
我也遇到过卡顿,一开始我以为是触摸屏的问题,检测结论是指纹识别传感器的问题,连我都没料到。



TOP

posted by wap, platform: iPhone
引用:
原帖由 @LTFYH  于 2015-9-14 14:16 发表
我真心不懂为啥虚拟大神会觉得读写cache和读写内存得耗电量是不一样的,难道cache不是放到内存里面得,是采用了PS3的技术虚拟到SD卡上的原因么?
Cache在物理上是和CPU封装在一起的。当讨论耗电的时候通常将其归纳到CPU耗电中。


TOP

posted by wap, platform: iPhone
引用:
原帖由 @yfl2  于 2015-9-14 14:21 发表
Mac的内存又不少,楼主不要为了攻击安卓忘了常识
你看得懂吗?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @国家重点型号  于 2015-9-14 14:22 发表
方便问下楼主在哪个行业工作吗
以前搞电子的,现在搞软件。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @yfl2  于 2015-9-14 14:33 发表
你说的这么简单的错误和疏漏还是很容易看出来的,比如你说内存大,如果只是缓存应用,应用会有小动作,那完全可以设置成退出应用就是杀死进程,但内存数据在没有新开其他程序时继续保有这部分数据以便于下次启动加速,这就没有耗电过多问题了
听上去你还是不懂。而且你的逻辑混乱得可怕,对,是可怕。

本帖最后由 ff_cactus 于 2015-9-14 14:46 通过手机版编辑

TOP

posted by wap, platform: iPhone
引用:
原帖由 @yfl2  于 2015-9-14 14:49 发表
是你胡搅蛮缠,安卓和苹果一样都会用多余内存缓存应用的数据,只不过安卓的权限管理更宽容导致应用会有小动作导致耗电,所以问题不在于内存更大,而在于权限,否则就是512m的安卓应用也会不断常识自启动和操作,反而因为要不断载入内存而更耗电
你眼睛瞎了,还是没读过书不识字,还是你有阅读障碍,还是你YY了我帖子的内容?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @coin1860  于 2015-9-14 14:56 发表
看了开头就看不下去了,完全是门外汉YY.作者连Linux cache 任务调度 通讯策略这些基本概念都搞不明白就在这里评价Android/ IOS的忧劣。只能用狗屁不通不值一辩这8个字形容了。
要不有请脚粉来讲解下吧。2333。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @LTFYH  于 2015-9-14 16:36 发表
耗电多得只可能是CPU和屏幕,内存那点耗电根本占不了多少,而且LZ的CACHE导致耗电得理论也太标新立异了,不管你内存是1G还是2G,你只要CPU在活动,CACHE的耗电量是一样得,因为CPU都按固定频率去读CACHE,这个和你内存大小根本没关系,只和你CPU运行频率有关系。
安卓耗电的唯一原因就是真后台,APP并不一定都进行了暂停处理。所以CPU一致处于活动状态,这肯定耗电就上升了,不过说真的,IOS现在耗电也好不了哪里去,这确实是一个比较奇怪的情况。
真佩服你连一点常识都没有还能说得“头头是道”。建议你去阅读下Computer Architecture方面的资料,高级一点的。
Cache本身不耗电,应为它是SRAM,比内存还省电。但Cache的管理,比如发生Cache Miss的时候非常耗电,因为现代Cache有非常复杂的处理机制,而且它工作频率非常高,应为它的存在就是为了弥补内存和CPU的带宽差。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @heven2004  于 2015-9-14 17:23 发表
看完此帖最颠覆我的是虚片居然还有队友?还是马甲?
你再看看哪些跑来扣JS的脚粉。真不知道这些脚们是有多LOW多臭。
也难怪,虽然这贴我是写给普通Android用户看的,但也揭露了那些脚粉自欺欺人的本质,难怪他们气急败坏了,哈哈哈。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @532  于 2015-9-14 18:30 发表
我很好奇,虚拟内存大婶的激骚开这贴的时候是负6xx,现在是负5xx,是不是有什么什么力量帮它多开了上百g虚拟内存补血的
哈哈哈,脚粉真是Low翻天了。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @武松  于 2015-9-14 18:56 发表
诚恳求教lz,能否使用虚拟内存技术解决安卓的卡顿问题?
不能

TOP

posted by wap, platform: iPhone
引用:
原帖由 @LTFYH  于 2015-9-14 20:19 发表

最佩服的就是虚拟大神这种指点江山的气概,那个英文很长的书名,我水平不够估计是读不下来,不过按虚拟大神的推论,如果一个同频的CPU,L1L2L3缓存不一样的话,那功耗比应该相差很大,如果两个CPU 缓存一样,但频率有差别的话那功耗应该差不多,因为决定CPU功耗的是缓存而不是主频,我想虚拟大神应该去INTEL指点下这个基础的东西,免得INTEL 走上歧路,老是打不赢ARM.
哦对了,还有一个大神的推论忘了总结了就是在PC上插不同容量的内存的时候,CPU的功耗是不同的,并且这个差别是和主频无关的,因为内存大小会影响CACHE的交换率,并且这个影响是物理性的,和程序逻辑无关,即:在主频恒定的情况下,CPU的功耗在物理上会随着内存的增多而呈现比较明显的增加.
谁说了决定功耗的是缓存不是频率?
书你也不用看了,YY神功练到一定程度估计也是听不懂人话的。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @yfl2  于 2015-9-14 21:59 发表
如果是这样,那么操作系统当然可以禁止后台程序的小动作,何况内存不可能只有前台一个进程,要占用肯定可以回收其他后台进程的
所以说,如果后台有问题,内存越小越耗电(因为不断启动不断读写闪存到内存)
如果后台没问题,内存大和小耗电基本差不多,因为内存本身刷新要不了多少电,就像air2不比air耗电一样
所以不把系统搞好,靠加内存,就是补丁上打补丁。但脚粉听话只听得见自己想听的。自己不想听的不但当耳边风,还要YY一通,自树把子自嗨,自己骗自己。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @yfl2  于 2015-9-14 22:08 发表
拉倒吧,这说明在两种情况下,加内存都不会对耗电有多少负面影响,至于你指责安卓的权限策略以及部分安卓软件的流氓,这是另外一个话题,何况你已经说了很多遍了
首先是脚粉说内存多省电。
然后我文中说内存多少与省不省电没有因果关系,省电要靠禁止程序无章法的运行。
然后脚粉开始YY,自嗨。思路各种天马行空。装疯扮傻,自己骗自己。

TOP

 22 12
发新话题
     
官方公众号及微博