Ускорение парсинга большого файла
Есть файл состоящий из 4 миллионов строк, где каждая строка это json объект. Сейчас процесс выглядит так: я получаю строку из файла, далее идет парсинг этой строки и вставка в бд. Как добиться максимальной скорости этого процесса ?
Ответы (1 шт):
Автор решения: ЮрийСПб
→ Ссылка
Вот тут есть пример как можно распараллелить парсинг: https://stackoverflow.com/a/10625178/3212712. Там же (и в других местах) утверждается, что само чтение в разных потоках прироста скорости не даст.
Т.е., получается, надо примерно так:
- В одном потоке читаем файл, составляем из него список строк.
- Делим список строк на части (тут, наверное, методом проб можно определить на какое кол-во частей можно/оптимальнее поделить)
- Каждую часть строк отправляем в отдельный поток, который распарсит каждую строку и
- сформирует SQL запрос по массовой вставке данных в БД, что да, как говорят в комментах должно быть самой медленной частью процесса.