Какой самый быстрый способ прочитать строку из файла? - PullRequest
3 голосов
/ 28 декабря 2011

Какой самый быстрый способ прочитать строку из случайной позиции в файле?Файл находится на SD-карте, код будет работать в Android.

Что я сейчас делаю - я считываю байты в байтовый массив и передаю его конструктору String.Кодировка UTF-8.Около 90% времени работы тратится в конструкторе String, в котором узким местом является Charset.decode (...).

Строки, которые я читаю, являются именами остановок общественного транспорта, поэтому их около 15в среднем длина символов:

EDIT : протестировано на эмуляторе Android 2.3.3 и работает намного быстрее, чем 2.1 (возможно, из-за JIT-компилятора).Каждую строку можно прочитать за 1 мс, что достаточно быстро.

1 Ответ

0 голосов
/ 28 декабря 2011

Вы не упомянули, сколько байтов вы пытаетесь прочитать, как часто вы создаете новую строку из прочитанных байтов или сколько времени занимает выполнение сценария.

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

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