所有
当我第一次插入设备后尝试从SD卡读取某些媒体文件时,读取性能比第二次差得多,是否有人对此现象有所了解,如何避免这种情况问题,我尝试打开和fopen,但结果是一样的,我只是想读取性能是一样的,无论何时插入SD卡,谢谢
答案 0 :(得分:1)
你是说在删除设备之前第一次读取比后续读取更糟糕?如果是这样,这是正常的 - 这是由于缓冲。基本上,系统使用系统RAM来加快设备的感知速度。
如果您在卸下卡后取出卡然后将其重新安装并重新安装它,我预计第一次读取会再次变慢,然后再次读取会更快。
答案 1 :(得分:1)
打开文件时使用O_DIRECT
(请参阅open(2))将绕过缓冲区缓存。这通常不是一个好主意,但我希望它在运行之间更加一致。
请注意,使用O_DIRECT
要求读取的内存为SC_PAGESIZE
对齐,并以SC_PAGESIZE
的倍数为块进行读取。