您现在的位置是:首页 > 科技 > 正文

我在说的是4.3还如何为所有Nexus设备带来TRIM支持

发布时间:2022-05-29 01:16:02编辑:来源:

上周,Android4.3的发布取得了巨大的成功。为什么是“差不多?”嗯,除了复制/粘贴方面的一些问题外,大多数用户似乎对JellyBean的最新版本非常满意。可以期望达到这样的用户满意度,因为最新版本的JellyBean带来了增强的性能,改进的API支持,附加功能以及其他一些功能。但是,对于那些经常将大量数据(例如媒体内容和其他大文件)传输到我们设备的人来说,这些“其他功能”之一非常重要。

当然,正如您所期望的,我在说的是4.3还如何为所有Nexus设备带来TRIM支持。在与NAND设备之间传输大量数据后经历过大量设备速度下降的任何人都知道我在说什么。举一个非常实际的例子,只需要看一下Google最初的Nexus7。就在它首次问世时,对这款流行设备的评论几乎一致地称赞了其出色的性能。但是,随着时间的流逝,大多数用户似乎注意到I/O性能急剧下降。使用该设备时,这会导致整体呆滞感,使曾经快速的平板电脑对于某些人来说几乎是缓慢的。与使用32GB的机型相比,此问题似乎对那些容量较小的机型的影响更大或更短。如您所料,这主要是由于在先前的版本中未启用TRIM。然后,这阻止了对NAND块进行垃圾收集调度,从而使向这些块的数据重写速度大大降低。(注意:TRIM的痕迹已重新添加到Nexus74.1.2版本中,但目前的共识是,直到4.3才真正启用它。)

查看AndroidGit,您可以轻松找到对Android的卷守护程序(VOLD)的修改,以启用fstrim。下一步是确定何时准确运行fstrim。正如来自Anandtech的BrianKlug的一些侦探工作所揭示的那样:

我已经了解了更多有关Android4.3何时修剪TRIM文件系统的潜在条件的知识,因为以前还不太清楚。Android框架将发出一个“开始空闲维护窗口”事件,MountService会侦听该事件,然后在满足一些条件时调用vold到fstrim文件系统–超过一个小时没有触摸设备,没有空闲维护窗口事件已在24小时内发送出去,并且该设备是具有80%电池电量的关闭充电器或具有30%电池电量的开启充电器。如果您习惯每晚插入设备以进行充电,则目标是使fstrim大约每24小时运行一次。

Fstrim在调用时将FITRIMioctl()命令发送到所有可写文件系统,这会丢弃文件系统未使用的eMMC上的(TRIM)块。如果没有TRIM,控制器将跟踪文件系统删除了数据的块,但控制器仍然认为需要跟踪数据。TRIM是文件系统和OS可以告知控制器它现在可以考虑将那些未使用的块和用于垃圾回收的信号通路–不同的控制器的行为将有所不同,因为决定下一步将发生什么是他们的特权。

换句话说,如果您的设备闲置并插入一个小时以上,它将运行“启动闲置维护窗口”事件。但是,只有在过去24小时内未发送“启动闲置维护窗口”事件,并且电池电量大于80%或已插入电源且电池电量大于30%时,才会发生这种情况。调用TRIM的另一种方法是对fstrim实用程序使用前端,并强制使用诸如XDA高级会员AuxLV的Lagfix应用程序之类的应用程序执行TRIM。

没有明显的性能提升,所有这些都不重要。那么从I/O性能方面可以从4.3期待什么呢?在接下来的几天里,我开始寻找两种日常使用的设备。在我个人的Nexus7(8GB)和Nexus10(16GB)上,从官方JDQ39(4.2.2)升级到官方JWR66V(4.3)之前和之后,我将使用AndrobenchStorageBenchmark进行测试。两种设备的使用率都很高,与设备之间传输的数据很多,删除操作也差不多。运行“after”测试后,我将为设备加根并使用LagFixfstrim前端手动强制执行TRIM并重新运行基准测试。

标签:

上一篇
下一篇

最新文章