Каков наилучший способ найти 'the' из файла, содержащего 30 тыс. Строк? - PullRequest
0 голосов
/ 11 февраля 2019

Этот вопрос был задан в интервью.Каков наилучший способ найти 'the' из файла, содержащего 30 тыс. Строк?Вы должны убедиться, что это быстро и требует меньше памяти.

Edit-1: я имел в виду эффективный способ обработки файла.Я ответил ему, чтобы он читал по одной строке за раз и обрабатывал ее, используя поток из threadPool.

1 Ответ

0 голосов
/ 11 февраля 2019

Трудно сказать, что является «лучшим» решением, если не дано никаких дальнейших критериев определения лучшего.Это может быть

cat file.txt | nl | grep "the"

, если цель состоит в том, чтобы потратить на это минимум программистских часов.Как уже отмечалось в комментариях, узким местом будет время, необходимое для доступа к диску.Размер файла в 30 тыс. Строк по-прежнему должен быть меньше 10 МБ, поэтому просто прочитайте его в один фрагмент памяти, чтобы избежать дополнительных операций чтения с диска.Затем выполните профилирование однопоточного поиска, чтобы проверить, стоит ли прилагать усилия для использования распараллеливания, поскольку это также сопряжено с некоторыми накладными расходами на порождение и координацию потоков и более высокими затратами на обслуживание кода.

...