ZebroidФорумПубличный разделВопросыКак ускорить импорт

Как ускорить импорт

16 сентября 2016, 11:51
Зарегистрирован: 09 февраля 2015, 11:32
Здравствуйте, получился файл на 700к записей и 300мб, пробую его импортировать в программу, помимо записей еще создаст наверно 50к категорий, время обработки уже подходит к суткам :D Поставил в настройках, чтобы работали 2 ядра, но по диспетчеру процессор вообще почти не используется, зеброид съел всю оперативу и непонятно, то ли обрабатывает объем данных, то ли просто завис.
Вопроса три:
1) Программа работает или зависла?
2) Можно как-то помочь программе в обработке данных и ускорить ее действия?
3) Какие объемы оптимальны для разового импорта? Имею ввиду объем в мегабайтах, либо кол-во записей.
Заранее спасибо за ответ :)

16 сентября 2016, 18:42
Зарегистрирован: 10 апреля 2012, 00:00
В каком формате файл?

Поставил в настройках, чтобы работали 2 ядра
При обработке одного файла используется только одно ядро, так что в данном случае это не имеет значения

16 сентября 2016, 18:44
Зарегистрирован: 09 февраля 2015, 11:32

admin в своем сообщении писал(а):В каком формате файл?


html

При обработке одного файла используется только одно ядро, так что в данном случае это не имеет значения

я пытался

16 сентября 2016, 21:26
Зарегистрирован: 10 апреля 2012, 00:00
html
Боюсь единственным принятым для вас способом будет разбить файлы на куски поменьше (чем меньше тем лучше и быстрее будет).

700к записей — это уже какая-то база данных получается, а под это подойдут более подходящие форматы (XML, SQL), импорт которых максимально оптимизирован для работы с большими объемами.

Для HTML файлов выбран немного другой сценарий, так как чаще это небольшие файлы с кучей ненужного кода, который Зеброид пытается очистить перед его обработкой. Если у вас нету возможности изменить формат, то возможно лучше будет импортировать файл как TXT (изменить расширение), а потом уже разбить его с помощью инструмента Разбивка статей. Это позволит пропустить процесс очистки HTML мусора который выполняется при импорте HTML файлов.

Только перед импортом сохраните пустой проект и переоткройте его в режиме SQLite (дабы избежать проблем с возможной нехваткой оперативной памяти).

17 сентября 2016, 11:41
Зарегистрирован: 09 февраля 2015, 11:32
Пересохранил в тхт, создал и сохранил проект, переоткрыл в режиме SQLite, запустил импорт, заброид снова задумался. Понимаю 250мб это очень много, но я не могу понять он обрабатывает инфу или просто завис, как это понять? Процессор не использует, сначала съел максимум оперативы (1гб), сейчас, спустя часов 10 держит у себя только 150мб. Вопроса два:
1) Можно как-то понять работает он или завис, при переключении на него, он не реагирует.
2) На сколько мегабайт импортировать, нужно загрузить все 250мб, но по 1мб я замучаюсь.
После импорта новостей помимо «разбивки статей» нужно будет еще собрать доп. поля, здесь походу тоже долговастенько будет.
Вид одной записи в тхт примерно такой:
<h1>категория</h1><h3>пост</h3>[pole1][/pole1][pole2][/pole2][pole3][/pole3][pole4][/pole4]


Комментарий отредактирован 1 раз(а). Последний раз редактировал ERR 17 сентября 2016, 11:42.
17 сентября 2016, 21:42
Зарегистрирован: 10 апреля 2012, 00:00
Попробовал импортировать файл размером 225 Мб — выдало ошибку о нехватке оперативки. Разбил файл на 2 куска — импортировало без проблем за пару секунд (в импорте отключил все пост обработке как на скриншоте).



Но я вам рекомендую разбить хотя бы на куски по 50 Мб, это как минимум ускорит работу программы во время разбивки статей на посты, если использовать несколько ядер.

Но в любом случае все обработки такого большого проекта (тут дело даже не в объеме текстов, а в количестве постов) будут довольно медленными.

17 сентября 2016, 21:44
Зарегистрирован: 09 февраля 2015, 11:32
Спасибо большое за помощь, теперь стало намного понятнее в какую сторону рыть