硬件:CPU P4賽揚2.2G,內存512M
操作系統:Windows XP SP2
數據庫:Access2002
軟件環境:JDK1.4,Eclipse3.01
數據庫采用JDBC-ODBC橋的方式連接,XML的訪問采用SAX方式。性能參數如下:
記錄數 |
XML讀取時間(毫秒) |
數據庫讀取時間(毫秒) |
100 |
156 |
94 |
1000 |
500 |
93 |
3000 |
828 |
94 |
5000 |
1000 |
109 |
10000 |
1485 |
94 |
100000 |
9172 |
125 |
很明顯,數據庫的性能大大超過XML,XML的數據量在超過10000條記錄時訪問時間超過了1秒,性能難以承受。而數據庫對數據量的增加不太敏感。
幾點說明:
1. Access數據庫對于大數據量的數據是不夠的,要測試海量數據最好使用SqlServer之類的專業數據庫;
2. JDBC-ODBC橋的方式是數據庫訪問方式中效率最低的,也就是說采用其他方式還可以進一步提高數據庫的性能。
3. XML的訪問我不是直接寫SAX代碼得到的,而是通過EMF(Eclipse Model Framework)自動生成的代碼得到的,這樣函數調用的層數增多了,對性能有一些影響,不過影響不會太大,對于IO來說,函數跳轉的時間可以忽略不計。
4. XML應該適合小量的數據存儲,最好少于10000條記錄,這樣訪問時間可以保持在2秒以下,勉強可以接受。
希望這組數據可以對使用XML作為數據源的人提供一點啟示。
注意:轉載請注明出處!