-1
我在網上看到很多關於Apache POI性能的問題,但沒有一個像我的情況那麼慢,他們的解決方案都不適合我。我使用的是NetBeans 8.0.2,JDK 1.8和POI-3.12-20150511。要讀取300 KB XLS(3000行和一些列),這條線需要10秒來運行:Apache POI非常慢
FileInputStream file = new FileInputStream(filename);
HSSFWorkbook workbook = new HSSFWorkbook(file); //this line takes 10 seconds
讀取一個較大的一個像1 MB XLS,它可能需要一個以上的分鐘創建HSSFWorkbook。
我試圖禁用POI日誌,並通過添加這些參數增加JVM存儲器:
-Dorg.apache.poi.util.POILogger = org.apache.commons.logging.impl.NoOpLog -J-Xmx1024m
他們沒有幫助。我的機器有12 GB內存,所以內存不應該成爲問題。
我不知道是否是Apache POI或JVM的問題。但是我已經將3000行數據導入MySQL,並且需要2秒鐘才能從MySQL讀取數據(而Excel需要10秒鐘)。
使用適當的基準測試工具對您的代碼進行基準測試。從外觀上看,您可以通過使用[BufferedStream](https://docs.oracle.com/javase/tutorial/essential/io/buffers.html)來降低讀取的IO開銷 – Vogel612