Можете ли вы предварительно обработать XML-файл в Java, чтобы ускорить загрузку / дальнейшую обработку? - PullRequest
0 голосов
/ 17 октября 2018

Мне интересно, могу ли я улучшить обработку строк в своем приложении.Я создал тестовый XML [для RSS, потому что я подражатель Колумбу] 6,7 МБ файла, и я обрабатываю текст, чтобы соответствовать длине строки через RegEx:

String returnString=returnString+"Text      : " + 
 e.getChildText("description").
replaceAll("(?<=\\G.{70,81}(?=\\s))",
"\n           ")+" \n";

Каждый обработанный элемент [орг.jdom2.Element] занимает около 8-16 мс [Intel i7 gen 7, ноутбук], так что я не был так недоволен, пока я не просмотрел файл размером почти 7 МБ.

Обработка занимает 65-75 секунд.

Могу ли я выполнить некоторую предварительную обработку, чтобы ускорить процесс, или это так?

Другие языки /другие подходы полностью приветствуются.За исключением C.

Редактировать: Я обрабатываю строку внутри org.jdom2.Element.

1 Ответ

0 голосов
/ 17 октября 2018

Если вы делаете одно изменение, маловероятно.

Если вы делаете несколько изменений, тогда вполне вероятно.

Если вы используете несколько регулярных выражений, то выпостоянно перебирая, копируя и изменяя строку несколько раз.

В какой-то момент дешевле анализировать XML один раз (например, в DOM), перебирать его на высоком уровне, делая небольшие измененияи затем рендеринг XML обратно в строку.Где находится точка пересечения, зависит от общего размера строки, количества изменений, стоимости синтаксического анализа и рендеринга и т. Д. Поэтому лучше всего попытаться сделать некоторые тесты, чтобы увидеть, что работает лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...