N706启动特别慢?一个计算器应用要10秒才能起来!!这是神马问题?难道是flash的问题,这几天一直在搞flash的读写测试,顺序读随机读顺序写随机写,来回折腾,最后测试发现随机写的速度比N701慢上180倍,应该就是问题所在了。在此把过程记录下来。
一、flash_test.v0.1
基本思路,
存在的问题
1、调用fwrite,fread等库函数,会受到文件系统的输入输出缓冲的影响,如果要对设备进行明确的控制,最好是使用底层函数write,read。
2、接收的参数太少,用户应该可以自定义测试文件的大小和测试的空间。
3、没有随机读写,另外如果只是测试IO吞吐量的话,mmap没有必要调用,它只是用来测试数据正确性的。
4、没有必要进行压力测试,不一定要写满整个分区,最后写文件找碎片将非常消耗时间,影响平均速度。
5、文件大小应该可变,应该常识各种大小的数据块的读写。
6、应该捕获用户“Ctrl+C"信号,让程序能删除中间文件。
7、代码结构化不好,所有的东西都集中在main函数中,可读性差,不利于维护。
8、没有生成log文件
二、flash_test.v0.2
1、定义5种操作:
2、测试循环:
3、test_operation函数
4、随机读写时用到的获取随机位置的方法(到处可用)。
5、随机写操作:
随机读操作:
6、main函数中对ctrl+c的捕获代码
7、main函数中对参数的处理
8、信号处理函数和全局变量
存在的问题:
1、打开的文件过多,最好能在一个文件里面进行操作。
三、flash_test.v0.3
主要修改test_loop函数
还有随机读写函数
存在的问题:
1、还是没能完全绕过文件系统,直接对裸设备进行测试
2、main函数没有进行getopt操作,有待改进
3、没有对printf进行包装,做到log信息同时向标准输出和文件输出有问题,可加入可变参数处理解决