ZARM in Linux & MIUI
zram是Linux内核的一个模块,之前被称为“compcache”。zram通过在RAM内的压缩快设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于zram可以用内存替代硬盘为系统提供交换空间的功能,zram可以让Linux在需要大量RAM的情况下在内存上进行交换/分页,而提高内存的使用率,显著得减少系统启动时对内存大小的要求。
让我来解释一下:zRAM其实是Swap(缓存)的一种手段,之前有的发烧友估计使用过一些诸如“SD卡做内存”的软件吧?这个道理和软件性质相同,只不过zRAM是通过压缩其他后台非活跃应用程序的内存占用的,再次引用一段话:
我先来简单介绍下什么是「Compressed Memory」。
Active memory:活跃的内存,比方可以说是开个5个App,每个占用了100M,那么就有500M活跃内存;
Inactive memory:非活跃的内存,比如关掉了三个App,那么这三个App占用的共300M内存就不再是活跃了,但是内核还会保留它。如果这时立马再启动这三个App,就会以非常快的速度打开了,因为还没有被其他App占用的Inactive memory这时又被激活了。如果很长一段时间内这些非活跃内存都没有再用的话,随着系统内存占用增加,这些非活跃内存也会被清空而用做新的用途。
那么Compressed Memory在其中扮演什么角色呢?很简单,它尽可能久的保留那些会用到的非活跃内存,以使系统更快的响应潜在的第二次响应。但是为了照顾新的内存需求,内核会压缩这些非活跃内存以腾出空间,以供新的App使用。
大概就是这么个过程,一般我们会觉得「压缩」而联想到这项技术省了内存,实际上Compressed Memory的核心价值在于是它加快了整个系统的响应速度。当然,压缩和解压缩需要消耗一点CPU,但是现在的电脑,大多数情况下,瓶颈在内存而不是CPU。
问题的核心来了:那么是否zRAM就是好的呢?截图中个人选择了禁用,并不是推荐大家都选择禁用,因为我并不是什么多任务狂,zRAM可以说能提高系统对多任务的处理能力,毕竟是把后台程序压缩而不是关闭,所以在程序切换之间会有一定的速度提升,当然这只是限于已经打开并且没有被kill的后台进程,对于那些希望尽可能的保留更多的后台进程的发烧友,我还是推荐选择高级,这个完全看自己的需求,当然,每次zRAM运行时会调用CPU进行压缩,所以不敢保证其电量消耗是否大小,我也用过一段高级,后台最多的时候能保留到20多个左右,而禁用也只能保留大概11-15个左右,所以使用与否完全看大家自己的需求了,至于zRam是否稳定,毕竟在Linux都被采用了很多年了,稳定性自然不会太差,但是毕竟MIUI目前还是以Dalvik虚拟机的形式存在,并没有使用Android L的Android-Runtime(俗称ART),至于zRAM以后的发展,我们并不得知
ZARM in Linux & MIUI的更多相关文章
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- 为什么android你用的越多,速度较慢的手机
依据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android+ 卡慢",也有超过 460 万条结果. 在业内.Andr ...
- 为什么Android手机总是越用越慢?
根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果.在业内,Android手机一直有着“越用越慢”的口碑 ...
- 为啥Android手机总会越用越慢?
转自:http://www.androidchina.net/818.html 根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢 ...
- Google Nexus5在linux下刷原生安卓 android6.0
之前将Nexus5刷成了MIUI系统,现在想体验一下安卓6.0,网上都是windows的教程,但如何在linux下刷机呢? 首先准备环境和工具: 1. 我的linux系统是lubuntu 15.10 ...
- Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...
- 努比亚 Z5 mini刷机包 omni4.4.2改动V4.0 自用版 精简 MIUI特效
ROM介绍: 第一版: 1.基于lwang适配的omni4.4.2第二版改动,少量精简改动 2.设置加入"自启项管理",体验更快.更顺滑 3.替换特效为XUI特效 4.改动host ...
- 使用linux mysql客户端建立表时遇到格式解析的问题
发现在notepad++写好的建表脚本,粘贴到linux客户端后,执行时总是报我的脚本有问题. 我看了又看,发现建表脚本本身是没有问题,问题出在"Tab"键上和注释上边了. 解决办 ...
- 移植 MIUI Framework
移植MIUI Framework 原文:http://www.miui.com/thread-409543-1-1.html 1. 为什么使用代码插桩 首先我们来回顾第一章中的Android软件架构图 ...
随机推荐
- nginx configure fastdfs + SSL
./configure \ --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ ...
- Atitit vue.js 把ajax数据 绑定到form表单
Atitit vue.js 把ajax数据 绑定到form表单 1.1. 使用场景:主要应用在编辑与提交场合..1 1.2. 绑定数据到form控件,可以使用jquery,不过vue.js更加简单1 ...
- redis-3.0.0_rc5的RPM包制定
首先查看脚本: # cat /tmp/redis_before.sh #!/bin/bash if [ ! -d /apps/redis-3.0.0-rc5 ];then mkdir -p /apps ...
- Nexus6p:正在下载系统更新,没有进度
今天想把手头的测试机更新至Android 8.1, 挂上VPN之后,在设置里点击系统更新,等了半天还是这个样子... 进度条死活不动,我也是醉了,后来找到了一个可行的办法: 先从设置里面的安全和位置性 ...
- 聊一聊 Spring 中的线程安全性
Spring与线程安全 Spring作为一个IOC/DI容器,帮助我们管理了许许多多的“bean”.但其实,Spring并没有保证这些对象的线程安全,需要由开发者自己编写解决线程安全问题的代码. Sp ...
- 光照渲染[Unity]
http://www.unitymanual.com/m/Manual/RenderingPaths.html http://wenku.baidu.com/view/54eca9e09b896802 ...
- 【Android】事件处理系统
linux输入子系统 Android是linux内核的,所以它的事件处理系统也在linux的基础上完成的. Linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/ ...
- SQLite三种JDBC驱动的区别
在DBeaver中看到SQLite有三种JDBC驱动,查了它们官方网站的相关解释,发现它们还是挺不一样的. SQLite Wrapper by Christian http://www.ch-we ...
- Eclipse - Mac Os Default JRE missing
转:http://stackoverflow.com/questions/1736993/eclipse-mac-os-default-jre-missing 1) Follow Joshua's a ...
- shell 全局剔除标点符号
vim打开文件 []如果是单个字符的话,加上中括号就代表“或”了 :%s/[`~!@#$^&*()=|{}':;',\[\].<>?�/¥……——|[]‘::”“'.,.]//g ...