Оптимизация частого сброса () - PullRequest
0 голосов
/ 14 марта 2012

Я хочу постоянно записывать данные на диск.И я хочу часто сбрасывать данные на диск (например, каждый кусок размером 64 МБ).Какое решение вы можете предложить?

Я думаю, что стандартный OutputStream может быть лучшим выбором, чем nio.channels, потому что он более простой.

1 Ответ

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

Если вы пишете непрерывный поток данных, например, добавляете в конец файла, обычный OutputStream с flush(), который вызывается время от времени, так же хорош или лучше, чем nio.Если nio может дать вам большое преимущество, это написать множество маленьких кусочков, распределенных по разным областям файла.В этом случае вы можете использовать файл с отображением в памяти, и это может быть улучшением по сравнению со старыми записями.Однако из вопроса, который я понимаю, вы скорее имеете дело с непрерывным потоком данных.Я предлагаю вам внедрить обычное решение, которое дает вам код, который вы находите более приятным, и искать альтернативы только в том случае, если вам не хватает производительности.В этом случае я бы не ожидал, что nio сделает заметную разницу.

...