简单的来讲,swappiness 的数值对应使用虚拟内存的权重,该数值越大,系统就会越积极的使用虚拟内存。
有人可能会说:那直接调整到最积极,不就能多使用虚拟内存了?但事实并非这么简单。
首先,就是速度问题,由于使用存储作为内存,即使今天的 UFS 闪存芯片,其 I/O 性能依旧不如物理内存。
其次,由于 swap 交换分区的特性,不可能随时优先使用虚拟内存。
并且 swappiness 值过大,会导致后台进程频繁回收释放,并载入存储的情况。(下文会详细解释)
优劣总结
优点:
对于目前的主流设备而言,适量的内存扩展,确实可以提升后台能力,提升使用体验。
目前各家的定制系统,由于动画、动态渲染等视觉效果会占据更多的资源。并且,目前许多品牌为了极致的性价比,依旧使用 6G 内存。
因此,低内存设备的体验确实不能让人满意,而现在引入内存扩展,可缓解这些问题。
缺点:
目前,虚拟内存读写性能不如物理内存,很容易出现切换应用后,停顿一下才加载出来的情况,造成体验的割裂感。
而且,如果想提升手机的后台能力,就需要使用更大的虚拟内存权重。
这就越容易出现后台应用频繁回收资源到存储空间,而上述的卡顿会越发严重。
并且,虚拟内存并不是越大越好,占额外空间就不说了。许多时候*后台并不是内存不够用了,而是系统的内存策略问题(点名 MIUI )。
虚拟内存不管多大,能使用的都是都很有限的,果子就已经删除了 20G 的虚拟内存,娱乐一下而已。
还有一点:由于内存的特性,长时间都会处于读写状态。因此,会一定程度减少闪存(存储空间)的寿命。