我用Java使用不同的解析器解析器X(XOM)和解析器Y(DOM)編寫了相同的XML解析算法。我將代碼嵌入到200萬次循環中以模擬我需要執行的操作數量,並使用Java Profiler監視性能。測量如下所示。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
我有幾個問題。
如果我想處理大約200萬個大小達到100 MB的XML,該怎麼辦?哪一個更好,以獲得更好的性能。性能是以時間來衡量的(無論機器利用率如何,我都有更快的處理所有XML的機器,因爲我有專門的機器來處理這個過程)。簡而言之,內存VS CPU時間VS正常運行時間更長
利用完整的CPU電源可以更快完成嗎?多線程?
如果我想測量性能。我應該使用CPU時間還是使用時間。我知道CPU時間是CPU專用於完成該過程的時間,而上升時間是機器完成該過程所花費的總時間?
爲什麼Parser Y與Parser X的時間相同,但CPU時間要低得多,儘管事實上這個測量並不是單次運行的結果。
是否可以使Parser Y的運行時間縮短,以便CPU時間性能的差異反映在現實生活中。
您是否試圖獲得最佳性能?那麼它可能不是dom,或者是xom,它是vtd-xml –