다른 파서 파서 X (XOM)와 파서 Y (DOM)를 사용하여 Java에서 동일한 XML 구문 분석 알고리즘을 작성했습니다. 필자는 200 만 회 루프 내에 코드를 임베드하여 수행해야하는 연산 수를 모방하고 Java 프로파일 러를 사용하여 성능을 모니터링했습니다. 측정 값은 아래와 같습니다.XML 구문 분석 DOM 대 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
나는 몇 가지 질문이 있습니다.
크기가 100MB에 달하는 약 2 백만 개의 XML을 처리하려면 어떻게해야합니까? 어떤 것이 더 나은 성능을 위해 더 좋습니다. 성능은 시간에 대해 측정됩니다 (이 프로세스를 위해 전용 머신을 사용함에 따라 머신 활용에 관계없이 모든 XML을 더 빨리 처리하는 작업). 짧게 말해서 메모리 VS CPU 시간 VS 가동 시간이 더 우수합니다.
전체 CPU 전력을 빠르게 사용하는 것이 가능합니까? 멀티 스레딩?
성능을 측정하고 싶습니다. CPU 시간 또는 가동 시간을 사용해야합니까? 나는 CPU 시간이 CPU가 프로세스를 끝내는 데 전념하는 시간이라는 것을 알고 있습니다. 가동 시간은 프로세스를 끝내기 위해 컴퓨터가 감시하는 총 시간입니다.
왜 파서 Y는 파서 X와 동일한 가동 시간을 가지지 만,이 측정은 한 번 실행 한 결과가 아니라는 사실에도 불구하고 CPU 시간이 훨씬 짧습니다.
파서 Y의 가동 시간을 짧게 설정하면 CPU 시간 성능의 차이가 실생활에 반영됩니다. 빠르게 XML을 처리하려면
최상의 성능을 얻으려고합니까? 그렇다면 그것은 아마 dom이나 xom이 아닙니다. vtd-xml입니다. –