[置顶] 电源管理之android内核suspend to disk的实现(八)--suspend to disk调试数据统计与总结

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补丁的实现方法,明天就是年会了,准备表演节目中。。。。。。。。。。。。。。

你可能感兴趣的:(TO,disk,suspend,Android系统,hibernation,STD方案调试)