Я написал тот же алгоритм синтаксического анализа XML в Java, используя различный парсер Parser X (XOM) и Parser Y (DOM). Я встроил код в цикл длиной 2 миллиона, чтобы имитировать количество операций, которые мне нужно переносить, и использовать профилировщик Java для мониторинга производительности. Измерения показаны ниже.XML Parsing performance DOM vs XOM
Parser X (XOM) Parser Y (DOM)
Heap Memory 6.82 7.9
Non-heap memory 14 15
Garbage Collector 617 collections \ 2 sec 523 collections \ 1 sec
Up time 1 m 53 s 1 m 54 s
CPU time 1 m 2 s 44.8 s
У меня есть несколько вопросов.
Что делать, если я хочу обработать около 2 миллионов XML с размерами, достигающими 100 МБ ?. Какой из них лучше для лучшей производительности. Производительность измеряется по времени (тот, который заканчивает обработку всех XML быстрее, чем использование машины, поскольку у меня есть выделенный механизм для этого процесса). Короче говоря, какой из них лучше с точки зрения памяти VS процессорное время VS время безотказной работы
Возможно ли использовать полную мощность процессора, чтобы закончить быстрее? Многопоточность?
Если я хочу измерить производительность. Должен ли я использовать время процессора или время Up. Я знаю, что время процессора - это время, выделенное процессором для завершения процесса, а время ожидания - это общее время, затрачиваемое на наши часы машиной для завершения процесса?
Почему Parser Y принимает такое же время, что и Parser X, но с гораздо меньшим процессорным временем, несмотря на то, что это измерение является не результатом одного прогона.
Возможно ли сделать время Parser Y короче, поэтому разница в производительности процессора отражается в реальной жизни.
Вы пытаетесь получить лучшую производительность? то это, вероятно, не dom, или xom, это vtd-xml –