Для проекта, над которым я работаю, я стараюсь как можно быстрее подсчитать гласные в текстовом файле. Для этого я пытаюсь использовать параллельный подход. Мне было интересно, можно ли одновременно читать текстовый файл, чтобы ускорить подсчет? Я считаю, что узким местом является ввод-вывод, и поскольку сейчас я читаю файл через буферизованный читатель и обрабатываю строку за строкой, мне было интересно, можно ли сразу прочитать несколько разделов файла.Разбиение файла в Java на многопоточность
Моя первоначальная мысль была использовать Split File - Java/Linux
но видимо MappedByteBuffers не большой производительности мудрый, и я по-прежнему нужно читать построчно из каждого MappedByteBuffer раз я разделил.
Другим вариантом является разделение после прочтения определенного количества строк, но это побеждает цель.
Поблагодарили бы за любую помощь.
Эта часть наиболее трудоемкая часть вашей программы? Возможно, вы можете просто кэшировать его. –
Если у вас нет очень большого массива RAID 0 или одного или нескольких накопителей SSD, чтение файла одновременно приведет к разрыву диска и _slow down_ вашего приложения. Учитывая задание обработки, которое у вас есть, очень просто (быстро читайте), вы вряд ли сможете получить от потоковой передачи, поскольку вы ограничены IO, а не ограничены ЦП. –
'как можно быстрее' Вы можете объяснить, почему? В чем проблема с простое чтение файла? – copeg