SD卡上的文件IO性能

时间:2012-03-02 02:29:18

标签: android linux performance file-io

所有

当我第一次插入设备后尝试从SD卡读取某些媒体文件时,读取性能比第二次差得多,是否有人对此现象有所了解,如何避免这种情况问题,我尝试打开和fopen,但结果是一样的,我只是想读取性能是一样的,无论何时插入SD卡,谢谢

2 个答案:

答案 0 :(得分:1)

你是说在删除设备之前第一次读取比后续读取更糟糕?如果是这样,这是正常的 - 这是由于缓冲。基本上,系统使用系统RAM来加快设备的感知速度。

如果您在卸下卡后取出卡然后将其重新安装并重新安装它,我预计第一次读取会再次变慢,然后再次读取会更快。

答案 1 :(得分:1)

打开文件时使用O_DIRECT(请参阅open(2))将绕过缓冲区缓存。这通常不是一个好主意,但我希望它在运行之间更加一致。

请注意,使用O_DIRECT要求读取的内存为SC_PAGESIZE对齐,并以SC_PAGESIZE的倍数为块进行读取。