正文内容 评论(0)
接触固态硬盘的应该都会关心耐用性、寿命这样的指标,这源于闪存存储的特质。现代智能手机、平板机使用的基本也是闪存,但因为日常负载都是轻量级的,所以很少碰到类似问题,但也有例外。
Nexus 7(旧版)就是比较突出的一个,它本身的存储I/O性能就不太够,影响系统流畅性,特别是随着时间的流逝、应用的增多,很容易会变得非常慢,大大影响了人们对这款平板的评价。
新版的Nexus 7大大提升了存储性能,而且借助新的安卓4.3,耐用性问题也得到了解决。事实上,所有的Nexus设备都能享受这种福利!
昨天对新Nexus 7的评测中我们就已经说过,安卓4.3开启了fstrim——其实就是我们常说的TRIM,只不过后者是Windows系统的,它则是Linux系统的。它们的原理是相同的:在主控和闪存之间建立一个通信通道,操作系统籍此告知SSD/eMMC主控某些闪存区块已经不再使用,无需继续追踪,可以执行垃圾回收了。
这对维持闪存存储长时间性能稳定是至关重要的。要知道,在闪存设备上删除软件的时候,执行的只是一个软件标记,让用户看起来空间释放了,但物理存储并未发生变化,在主控看来响应的区块还在使用中,仍旧有正常数据。
比如说,你向手机存储中拷贝了一部3GB的电影,看完了删了,3GB空间看起来解放了,但在你重新向这些区块写入数据之前,在主控眼里,电影还在那儿。
安卓4.3对此是这么处理的:系统框架发出一个“start idle maintenance window”(开始空闲维护窗口)的事件,MountService系统服务接听到之后,便通过磁盘管理进程vold联系fstrim文件系统,执行清理。
不过这一系列操作是需要满足一定前提条件才会触发的:设备未使用超过一个小时、过往24小时没有空闲维护窗口事件、电池剩余电量不低于80%、设备正在充电且电量不低于30%。
如果你习惯每天晚上插上充电,fstrim会大概每24小时执行一次。
验证fstrim是否工作也很简单,只要在ADB中执行以下命令:
adb logcat -d | grep -i fstrim
下边就是输出示例(系统都是4.3):
Nexus 7 (2013):
┌─[brianklug@MBP] - [~/Downloads/APKs] - [Mon Jul 29, 03:30]
└─[$] <> ./adb logcat -d | grep -i fstrim
I/fstrim ( 172): Starting fstrim work...
I/fstrim ( 172): Invoking FITRIM ioctl on /cache
I/fstrim ( 172): Trimmed 564789248 bytes on /cache
I/fstrim ( 172): Invoking FITRIM ioctl on /data
I/fstrim ( 172): Trimmed 25105637376 bytes on /data
I/fstrim ( 172): Invoking FITRIM ioctl on /persist
I/fstrim ( 172): Trimmed 0 bytes on /persist
I/fstrim ( 172): Finished fstrim work.
I/fstrim ( 172): Starting fstrim work...
I/fstrim ( 172): Invoking FITRIM ioctl on /cache
I/fstrim ( 172): Trimmed 0 bytes on /cache
I/fstrim ( 172): Invoking FITRIM ioctl on /data
I/fstrim ( 172): Trimmed 1045696512 bytes on /data
I/fstrim ( 172): Invoking FITRIM ioctl on /persist
I/fstrim ( 172): Trimmed 0 bytes on /persist
I/fstrim ( 172): Finished fstrim work.
Nexus 7 (2012):
┌─[brianklug@MBP] - [~/Downloads/APKs] - [Mon Jul 29, 03:46]
└─[$] <> ./adb logcat -d | grep -i fstrim
I/fstrim ( 122): Starting fstrim work...
I/fstrim ( 122): Invoking FITRIM ioctl on /cache
I/fstrim ( 122): Trimmed 122961920 bytes on /cache
I/fstrim ( 122): Invoking FITRIM ioctl on /data
I/fstrim ( 122): Trimmed 1087574016 bytes on /data
E/fstrim ( 122): Cannot stat mount point /radio
I/fstrim ( 122): Finished fstrim work.
I/fstrim ( 122): Starting fstrim work...
I/fstrim ( 122): Invoking FITRIM ioctl on /cache
I/fstrim ( 122): Trimmed 118923264 bytes on /cache
I/fstrim ( 122): Invoking FITRIM ioctl on /data
I/fstrim ( 122): Trimmed 782077952 bytes on /data
E/fstrim ( 122): Cannot stat mount point /radio
I/fstrim ( 122): Finished fstrim work.
Nexus 4:
┌─[brianklug@MBP] - [~/Downloads/APKs] - [Mon Jul 29, 03:47]
└─[$] <> ./adb logcat -d | grep -i fstrim
- waiting for device -
I/fstrim ( 169): Starting fstrim work...
I/fstrim ( 169): Invoking FITRIM ioctl on /cache
I/fstrim ( 169): Trimmed 115343360 bytes on /cache
I/fstrim ( 169): Invoking FITRIM ioctl on /data
I/fstrim ( 169): Trimmed 888254464 bytes on /data
I/fstrim ( 169): Invoking FITRIM ioctl on /persist
I/fstrim ( 169): Trimmed 0 bytes on /persist
I/fstrim ( 169): Finished fstrim work.
I/fstrim ( 169): Starting fstrim work...
I/fstrim ( 169): Invoking FITRIM ioctl on /cache
I/fstrim ( 169): Trimmed 113246208 bytes on /cache
I/fstrim ( 169): Invoking FITRIM ioctl on /data
I/fstrim ( 169): Trimmed 1431195648 bytes on /data
I/fstrim ( 169): Invoking FITRIM ioctl on /persist
I/fstrim ( 169): Trimmed 0 bytes on /persist
I/fstrim ( 169): Finished fstrim work.
如果你的设备经历着性能倒退的问题,升级到4.3之后让sftrim工作几次应该就能满血复活了。至于究竟能恢复多少,请等测试。
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...