Java NIO: идеальный подход к высокоскоростной последовательной потоковой передаче больших двоичных данных в файлJAVA

Программисты JAVA общаются здесь
Гость
Java NIO: идеальный подход к высокоскоростной последовательной потоковой передаче больших двоичных данных в файл

Сообщение Гость »

Мне нужно ускорить работу ряда Java-приложений, которые сначала создают большой объем последовательных данных (двоичных) для последующей (последовательной) обработки следующим приложением. Я рассматриваю возможность использования Java NIO, Apache Commons IO или любой другой библиотеки, которая упрощает это. Скорость имеет решающее значение. Приложения однопоточные. Размер файлов варьируется от ~ 1 до 10 ГБ (возможно, в будущем будет намного больше). Запись данных будет занимать 2 байта каждые примерно от 1/10 до пары секунд.
Например. По сути, это очень похоже на ведение журнала, за исключением того, что оно двоичное и скорость имеет решающее значение.
Файлы, отображаемые в памяти, кажутся идеальными для этого, с периодической (предпочтительно автоматической) очисткой. Тривиальные примеры кода, которые я нахожу, вызывают больше вопросов, чем ответов, например:
  • Как работают ByteBuffers? Должен ли я создавать его для каждой записи или заполнять буфер, а затем выполнять запись или что?
  • является ли ApacheCommons DeferredFileOutputStream хорошим выбором? А как насчет очистки буфера в конце выполнения
  • какие еще варианты могут работать лучше?
Будем очень признательны за ссылку на хорошее руководство или хороший пример.

Подробнее: https://stackoverflow.com/questions/799 ... inary-data

Вернуться в «JAVA»