我有一個客戶的呼叫上週末告訴我做數據導入時,他們的Java程序沒有響應。該數據是一個帶有4個工作表的簡單Excel工作簿。所有數據正在從列中讀取並添加到數據庫中。作戰的Java堆大小,Java之間的大區別本地和Java Web Start
於是我開始調查,並有一些奇怪的結果。
- 使用Netbeans中的Run測試導入。此使用Java 64位實例:
首先運行
第二運行
- 測試通過使用Java Web Start進行導入。這是正在打開JNLP文件發佈和使用Java 32位實例:
- 爲什麼會出現的情況下,與內存使用300MB的區別1和2與案例4相比?
- 這是內存佔用率過高不好的編程或內存泄漏的結果?或者是否有這樣高的值是正常的?
- 是增加
initial-heap-size="512m" max-heap-size="1024m"
針對此問題的有效的解決方案?
首先運行
在這種情況下,我有同樣的問題這對客戶來說是報告,程序在經過一段時間後才停止響應。這是由於我達到最大堆大小,據我所知(紅圈)。
第二輪
所以我決定增加通過添加以下到我的JNLP文件的初始堆大小和最大堆大小:initial-heap-size="512m" max-heap-size="1024m"
。當我再次測試的進口,它似乎工作,但我發現有使用更多的內存相比前兩種情況:
@StackFlowed我非常懷疑。 – Kayaman