JDOM真的比DOM4j要慢嗎?

來源:互聯網
上載者:User
dom
 有一部分xml解析器使用者認為 JDOM 很慢,至少比起Dom4j來說效率不快。其實JDOM和DOM4J一樣,同屬優秀的開源XML解析器, 完全不必這樣擔心。 現在就實際拿一些實際使用的例子,作為簡單的測試案例,對JDOM以及DOM4J最基本的文檔解析功能來說明這個問題。 JDOM測試案例如下:   
  public Document getDoc(String filename) throws IOException, JDOMException {        SAXBuilder sb = new SAXBuilder();

//    SAXBuilder sb = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl");        Document doc = null;          //傳遞的是檔案路徑時        doc = sb.build(new FileInputStream(filename));

        return doc;    }

DOM4J測試案例如下 
public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //傳遞的是檔案路徑時        doc = sb.read(new FileInputStream(filename));

        return doc;    }

測試平台環境:Intel 1.4G 迅馳 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2



  public Document getDoc(String filename) throws IOException, JDOMException {        SAXBuilder sb = new SAXBuilder();

//    SAXBuilder sb = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl");        Document doc = null;          //傳遞的是檔案路徑時        doc = sb.build(new FileInputStream(filename));

        return doc;    }

DOM4J測試案例如下 
public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //傳遞的是檔案路徑時        doc = sb.read(new FileInputStream(filename));

        return doc;    }

測試平台環境:Intel 1.4G 迅馳 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2


public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //傳遞的是檔案路徑時        doc = sb.read(new FileInputStream(filename));

        return doc;    }

測試平台環境:Intel 1.4G 迅馳 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2

兩者均不指定SAX解析器類,都是用SAX事件方式得到Document樹型結構

測試文檔樣見文檔最後,為數層結構XML文檔。

每個測試案例每組同時做200次為5組,察看總體解析速度JDOM6.93s 6.94s 6.96s 7.05s 7sDOM4J7.551s 7.581s 7.631s 7.55s 7.621s

從結果來看JDOM和DOM4J解析速度為同一層級,可能不同的文檔速度稍微有差別,當JDOM XML SAX解析器換成 org.apache.crimson.parser.XMLReaderImpl 的時候,速度會提高0.5s左右,而DOM4j提高0.2s左右。另外我還對多個結構的XML文檔解析,2萬多行的XML文檔解析,均沒有發現JDOM解析比DOM4j慢的情況,速度基本是兩者55分。有些JDOM快,有些DOM4j快,有興趣的讀者可以自己做做實驗。

關於一些在解析的時候速度變慢,還有記憶體溢出的說法,我看還是由於其他的原因導致的,或者遍曆寫法有問題所至。所以無論是使用DOM4j還是JDOM都可以按照自己的喜歡愛好使用,完全不必擔心所謂的速度問題。




相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。