suspend to disk数据统计
该测试基于jz4780grus开发板获得的开机运行时间。
时间统计:
1)开机(只有地图运行)内核启动的时间统计
准备时间 搬移镜像 恢复现场 搬移速度 镜像大小 总计 第一次 4.43s 25.28s 3.90s 15.32M/s 387348K 33.70s 第二次 4.42s 24.97s 3.85s 15.62M/s 390160K 33.24s 第三次 4.44s 24.99s 3.83s 15.62M/s 390372K 33.26s 第四次 4.43s 24.98s 3.86s 15.63M/s 390508K 33.27s 第五次 4.95s 25.02s 3.83s 15.61M/s 390604K 33.80s 平均 4.53 25.05 3.85 15.56 380.66M 33.45s
2)开机(关闭地图运行)内核启动的时间统计
准备时间 搬移镜像 恢复现场 搬移速度 镜像大小 总计 第一次 4.43s 24.61s 3.72s 15.90M/s 391396k 32.76s 第二次 4.43s 24.60s 3.71s 15.91M/s 391560k 30.62s 第三次 4.43s 24.61s 3.71s 15.91M/s 391696k 30.72s 平均 4.43 24.61 3.71 15.91M/s 382.37M 31.37
3)开机后关闭地图,打开音乐、浏览器、日历内核启动时间统计
准备时间 搬移镜像 恢复现场 搬移速度 镜像大小 总计 第一次 4.42s 21.08s 5.10s 17.47M/s 368424k 30.60s 第二次 4.43s 21.10s 5.09s 17.46M/s 368460k 30.62s 第三次 4.41s 21.22s 5.09s 17.36M/s 368548k 30.72s 平均 4.42 21.13 5.09 17.43M/s 359.84M 30.65
基于以上的统计结果可以得出如下结论:
1、打开的程序越多,则恢复现场所用的时间就会越长,但是幅度变换不是太大,对整体时间的影响并不是主要因素。
2、准备时间主要是为了SD卡驱动加载完成,这段时间较为固定化,变化也不大。
3、能够对启动产生影响的有两个部分:
镜像大小:镜像越小,搬移所用时间就会越少,就越能节省时间。但是现场的镜像是经过压缩的,不同的压缩方式结果也是不同的,这一点可以借鉴一些补丁的观点,但是实现难度很大。
搬移速度:由图可以看出来,虽然搬移速度有浮动,但是提高是有限制的,这跟我们用的介质,以及硬件是有关系的。和电脑的硬盘相比SD卡的读写速度显然很慢,我曾想过用nand代替SD卡,但是nand的分区执行的比较靠后,虽然调整了顺序,但是没能达到预期的效果。
suspend to disk的缺点;
1、不稳定,虽然几率不大,但是还是能够碰到不正常的时候。
2、wifi关机前必须先关闭,不然的话会有可能出现问题。
个人总结:
本来想靠实现android系统的hibernation功能,来像linux的hibernation功能和win8的快速开机功能一样,提高开机速度,但是移动设备的种种限制导致开机速度并不明显,现在又开始研究其他的快速开机启动了。内核是mips的有些arm开机工具不能用,真的很悲剧!
后面我会介绍tuxonice补丁的实现方法,明天就是年会了,准备表演节目中。。。。。。。。。。。。。。