经常听到身边用安卓的朋友抱怨手机卡顿,内存动不动就快没了,而Google声称在512M的内存下也能流畅运行Android 4.4,到底它做了什么?

总结一下它主要做了四件事:

1.优化内核,使用ActivityManager来减少直接内存回收

2.优化LMK(low memory killer)的临界值

3.使能KSM(Kernel Samepage Merging)

4.使能ZRAM代替SWAP分区

这几个事情,个人只有第三和第四件事情看起来比较靠谱。

优化内核的事情:

摘自Google官方网站的英文介绍,翻译过来的意思大概是: 修改临界值,减少直接内存回收,因为直接内存回收会需要额外的IO操作,耗时较大,利用空闲的时间增加后台回收。

众所周知,对EMMC读写的时候,是非常耗费时间的,因为内存的读写速度要高出EMMC读写速度几个量级,因此减少与EMMC交互的确可以节省很多时间,减少卡顿,但是每个人的使用习惯不同,怎么要修改算法使得减少直接内存回收呢?我不知道,但是我觉得这个优化等于说废话,到底咋样,使用过后才知道。

关于LMK:

Linux内核中,用OOM来回收内存,即当内存不够的时候,调用一种算法,把那些不用的,优先级别比较低的,都给释放掉,这样腾出一部分内存,于是内存就变大了,而Android中,对这个OOM机制做了一个优化,它就叫LMK。

它认为,如果等到OOM发生的时候,内存已经非常不足了,这个时候再去释放内存,系统的响应时间会变的非常长,造成非常差的用户体验,于是LMK做了一个改变,定时检查空闲内存,当少于某个伐值的时候,就杀掉一些进程,腾出一些空间,这样保证系统中一直有较大的空闲内存,可以减少卡顿。有道理,后面的章节中会仔细讲诉LMK。

KSM:

这个东西早在2009年的时候就出来了,但是反映比较平淡,原因是:KSM合并相同页面,即合并副本内存,可以节省不必要的内存,但而采用此方法,会增加耗电量,不得已的时候才会打开。

什么是ZRAM:

说的明白一点,ZRAM就是SWAP的一个改进,一般发生SWAP的时候,是把要置换出去的数据存到外部磁盘上(手机就是EMMC,电脑就是硬盘),这样会降低效率,于是聪明的开发者们相处一个方法,那就是把要置换出去的东西压缩还放在内存中,这样消耗的只是解压时间,而这个时间远远小于与外部磁盘交互所消耗的时间。是个比较靠谱的方式,下面的章节中,将详细讲诉它的调用过程以及如何打开。

于是LMK,KSM和ZRAM是笔者认为比较靠谱的方式,下面的几个章节,将分别讲诉他们如何被使能,以及具体的调用过程和原理。

巧妇能为少米之炊(1)——Android下小内存下的生存之道相关推荐

  1. 巧妇能为少米之炊(3)——压缩饼干(ZRAM)

    这个是我认为小内存处理中比较靠谱的方式--zram.它就像压缩饼干一样,虽然小小一块饼干看起来不大(zram的压缩页面占用内存),但是一喝水,感觉立马饱了(释放一个页面的内容). 1.简介 2.如何使 ...

  2. 巧妇能为少米之炊(2)——幽灵侩子手(LMK)

    使用安卓的朋友可能会遇到过这样的问题,就是某个应用正在使用,突然它被关闭了,或者打开某个应用,然后它就退出了,其实这背后就是LMK(Low Memory Killer)在起作用,所有形象地称之为幽灵刽 ...

  3. 占内存少的java开发工具_Java所占内存中神奇的64MB

    一 前言 在生产环境,Java应用程序设置了最大JVM内存后,经常发现实际使用的内存,可能超过设置的JVM最大内存数jmap -heap pid 通过这个命令可以方便查看java的内存分配情况.一般情 ...

  4. 滤芯怎么换 石头机器人_【诉说实情】小米扫地机机器人配件米家石头滤芯怎么样?小编深度剖析评测? | 智能扫地机器人评测...

    [诉说实情]小米扫地机机器人配件米家石头滤芯怎么样?小编深度剖析评测?适用于小米扫地机机器人配件米家石头过滤网 滤芯 边刷 大滚刷 我上个星期活动入手的这款柠乐(电热水壶)石头吸尘器用起来蛮不错的咧, ...

  5. HTML5小游戏笑说米,活跃气氛的70个小游戏 带动气氛的小游戏

    集体活动最怕的就是冷场,活动之前准备一些活跃气氛的游戏可以让整个氛围变得好很多.下文有途网小编给大家整理了一些能够带动气氛的小游戏,供参考! 带动气氛暖场小游戏 娱乐呼啦圈(4人) 规则:两男两女 ( ...

  6. 华米手表2 是android,手表 | 续航怪兽 华米AMAZFIT智能运动手表2代深度评测(二)...

    在上一篇的评测中,让我们对华米AMAZFIT智能运动手表2代已经留下了深刻的印象.如果你已经忘记了上一篇评测的内容,我们先来回顾一下评测一中AMAZFIT 2的表现.外形相比一代有巨大提升,运动兼具日 ...

  7. 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与人工智能的40年...

    来源:清华小五园(ID:xiaowuyeyuanthu) 问如今最家喻户晓的科技概念,人工智能一定会获得提名.21世纪第二个十年以降,人工智能相关的技术突破层出不穷,Siri,AlphaGo,机器翻译 ...

  8. android+多米音乐+自动播放,android 高仿多米音乐播放器

    半年前写了个音乐播放器,仿的是多米的UI界面 之前发表在eoe社区,今天也发到csdn上来 不罗嗦,先上效果图: 下面简单介绍下代码: MusicPlayer 播放音乐的核心类,该类有以下成员变量 p ...

  9. 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与AI的40年

    来源:清华小五爷园 本文共7346字,建议阅读10分钟. 本文为你分享清华计算机系与人工智能的故事. 问如今最家喻户晓的科技概念,人工智能一定会获得提名.21世纪第二个十年以降,人工智能相关的技术突破 ...

最新文章

  1. 补天白帽大会:无处不在的无线电攻击
  2. 使用隐式Intent打开系统浏览器的百度网页
  3. 【高效JDBC编程工具JadePool快速入门】
  4. Atom工具总结笔记
  5. 什么是类加载器,类加载器有哪些?
  6. 小猴吃桃matlab,看图写话:小猴吃桃精彩选篇
  7. java常用的缓存_java 常用缓存 - 只对肉有感觉的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 如何用SQL实现从第几条记录开始取几条
  9. PHP中输出本地时间
  10. 文字处理技术:布局的核心是行布局,难点是换行算法
  11. windwos 10打印机服务老是自动关闭
  12. ffmpeg 推流MP4文件,采用rtmp协议
  13. 手机电阻屏和电容屏哪个好?电容屏和电阻屏的区别!
  14. python 科研作图_科研作图软件(11种)
  15. 过去式和现在完成时区别
  16. 如何解决3G模块和USB转串口冲突问题
  17. 中科院计算所沈华伟:图神经网络表达能力的回顾和前沿
  18. Linux文件夹的介绍
  19. android studio实现视频聊天,实现视频通话
  20. python+gdal+numpy计算ndvi

热门文章

  1. JavaScript内部原理实践——真的懂JavaScript吗?(转)
  2. 干货来袭!手动搭建高可用的Redis5-0分片集群
  3. 抗病毒软件供应商担心恶意软件生产速度
  4. 中式英语之鉴读书笔记(下)
  5. Error 12154 received logging on to the standby
  6. Black Duck
  7. [Watermelon_book] Chapter 3 Linear Model
  8. 【电脑问题解决】戴尔游匣7559 16年 顶配 4k触摸屏 960m显卡 4k屏幕分辨率下使用卡顿(非使用4K分辨率进行游戏)
  9. 大学计算机成绩构成,大学计算机平时成绩占多少?
  10. myeclipse building workspace如何禁止及提高myeclipse速度