Производительность ввода-вывода файла на SD-карте - PullRequest
2 голосов
/ 02 марта 2012

все

Когда я пытаюсь прочитать какой-нибудь мультимедийный файл с SD-карты после того, как я в первый раз вставляю в устройство, производительность чтения намного хуже, чем во второй раз, кто-нибудь имеет представление об этом явлении, и как я могу избежать этого проблема, я пытался открыть и fopen, но результаты совпадают, я просто хочу, чтобы производительность чтения была одинаковой, независимо от того, когда я вставляю SD-карту, спасибо

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Использование O_DIRECT (см. open (2) ) при открытии файла будет обходить буферный кеш.Это часто не очень хорошая идея, но я ожидаю, что она будет более последовательной от запуска к запуску.

Имейте в виду, что использование O_DIRECT требует, чтобы считываемая память была выровнена и прочитана в SC_PAGESIZEблоки, кратные SC_PAGESIZE.

1 голос
/ 02 марта 2012

Вы говорите, что для первого чтения хуже, чем для последующего чтения перед удалением устройства? Если это так, это нормально - это связано с буферизацией. В основном система использует системную оперативную память для ускорения восприятия скорости устройства.

Если вы извлечете карту после размонтирования, а затем вернете ее и снова подключите, я ожидаю, что первое чтение снова будет медленнее, а затем последующее чтение снова будет быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...