1、背景:
通过压缩长时间不在前台的进程来节省内存占用,不会像swap一样频繁操作闪存,也可以减少IO操作节省资源,延长闪存寿命,不过内存压缩是一种用时间换空间的方式,cpu解压缩过程也是需要消耗少量cpu资源。
尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢于这RAM操作速度。因此,如果频繁地做IO操作,不仅影响flash使用寿命,还严重影响系统性能。
内存压缩是一种让IO过程平滑过渡的做法, 即尽量减少由于内存紧张导致的IO,提升性能。