Posted on 2005-03-10 17:24
wxb_nudt 閱讀(4262)
評(píng)論(1) 編輯 收藏 所屬分類:
技術(shù)雜談
硬件:CPU P4賽揚(yáng)2.2G,內(nèi)存512M
操作系統(tǒng):Windows XP SP2
數(shù)據(jù)庫(kù):Access2002
軟件環(huán)境:JDK1.4,Eclipse3.01
數(shù)據(jù)庫(kù)采用JDBC-ODBC橋的方式連接,XML的訪問采用SAX方式。性能參數(shù)如下:
記錄數(shù) |
XML讀取時(shí)間(毫秒) |
數(shù)據(jù)庫(kù)讀取時(shí)間(毫秒) |
100 |
156 |
94 |
1000 |
500 |
93 |
3000 |
828 |
94 |
5000 |
1000 |
109 |
10000 |
1485 |
94 |
100000 |
9172 |
125 |
很明顯,數(shù)據(jù)庫(kù)的性能大大超過XML,XML的數(shù)據(jù)量在超過10000條記錄時(shí)訪問時(shí)間超過了1秒,性能難以承受。而數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)量的增加不太敏感。
幾點(diǎn)說明:
1. Access數(shù)據(jù)庫(kù)對(duì)于大數(shù)據(jù)量的數(shù)據(jù)是不夠的,要測(cè)試海量數(shù)據(jù)最好使用SqlServer之類的專業(yè)數(shù)據(jù)庫(kù);
2. JDBC-ODBC橋的方式是數(shù)據(jù)庫(kù)訪問方式中效率最低的,也就是說采用其他方式還可以進(jìn)一步提高數(shù)據(jù)庫(kù)的性能。
3. XML的訪問我不是直接寫SAX代碼得到的,而是通過EMF(Eclipse Model Framework)自動(dòng)生成的代碼得到的,這樣函數(shù)調(diào)用的層數(shù)增多了,對(duì)性能有一些影響,不過影響不會(huì)太大,對(duì)于IO來說,函數(shù)跳轉(zhuǎn)的時(shí)間可以忽略不計(jì)。
4. XML應(yīng)該適合小量的數(shù)據(jù)存儲(chǔ),最好少于10000條記錄,這樣訪問時(shí)間可以保持在2秒以下,勉強(qiáng)可以接受。
希望這組數(shù)據(jù)可以對(duì)使用XML作為數(shù)據(jù)源的人提供一點(diǎn)啟示。
注意:轉(zhuǎn)載請(qǐng)注明出處!