首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

Java 四大 XML 解析技術性能大比拼:DOM、SAX、JDOM、DOM4J

     編輯:關於JSP

測試環境與方法

  • 環境:AMD 1.4G、256M DDR、Win2000 Server SP4、Sun JDK 1.4.1 + Eclipse 2.1 + Resin 2.1.8,Debug 模式。
  • XML 結構:<RESULT><VALUE><NO>...</NO><ADDR>...</ADDR></VALUE>...</RESULT>
  • 方法:JSP 調用 Bean 解析 10K/100K/1000K/10000K XML,統計耗時 (毫秒)。

1. DOM (JAXP Crimson 解析器)

W3C 標準,樹形結構,內存持久化,支持隨機訪問修改,編程簡單。但大文檔解析慢、佔內存,10M 直接 OutOfMemoryError。
耗時:10K~200ms、100K~9s、1000K~700s、10000K OOM。

2. SAX

事件驅動流式處理,無需載入整個文檔,內存佔用極低,可中途停止解析,速度通常遠快於 DOM。但編碼較複雜,難以同時訪問文檔多處數據。
耗時:10K~80ms、100K~400ms、1000K~3.3s、10000K~32s。大文檔性能王者。

3. JDOM

Java 專用文檔模型,簡化 XML 交互,API 大量使用 Collections,學習曲線低 (「20% 精力解決 80% 問題」)。但僅用具體類不接口,靈活性受限;不含解析器,通常委託 SAX2。
耗時:10K~100ms、100K~700ms、1000K~29s、10000K OOM。性能無優勢。

4. DOM4J

源自 JDOM 智能分支,融合 XPath 支持、XML Schema、大文檔流式處理、並行 DOM 接口訪問。使用接口與抽象基類,API 更複雜但靈活性極強,性能優異、功能強大、極易用。
耗時:10K~80ms、100K~280ms、1000K~2.3s、10000K~20s。全場景綜合獲勝者。

結論與建議

  • 小文檔:DOM、JDOM 尚可接受,編程簡單。
  • 大文檔/高性能:首選 DOM4J,性能最優且功能最全 (Hibernate 即用它讀配置)。
  • 流式/內存受限:SAX 最佳,但編碼難度大。
  • 可移植性需求:DOM 為 W3C 標準,多語言通用,JS 中必用。

不考慮可移植性,**直接選 DOM4J**!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved