Страницы

Поиск по вопросам

понедельник, 24 декабря 2018 г.

Как эффективнее всего распарсить огромный файл логов на слабой машине?

Есть сервер с 1gb RAM. Есть лог файл nginx (любой другой веб-сервер) на 70gb. Как максимально быстро собрать статистику по user agent пользователей сайта, учитывая описанные ограничения по ресурсам.


Ответ

можно воспользоваться StringTokenizer в языке Java, который позволяет считывать файл построчно и не тратить память на хранение всех строк файла.
StringTokenizer tok = new StringTokenizer("/path/to/file"); while (tok.hasMoreTokens()) { String line = tok.nextToken(); // работаешь со строкой. }
Также можно указывать разделитель в конструкторе, по умолчанию стоит \t

\f

Комментариев нет:

Отправить комментарий