嗨 我遇到一個奇怪的現象。Unix/Linux中的JVM內存管理
我有一個由Hibernate ORM的方式查詢數據庫的Java應用程序。
在HP-UX sgx842 B.11.11 U 9000/800 888281448 unlimited-user license
後,我啓動服務器,使幾千幾個查詢記錄堆大小穩定在800MB。
在Linux sglx481.amk.st.com 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
內存爆炸,直到最大JVM內存(由-Xmx
選項設置)。但是,系統不會放慢速度,仍然可以執行查詢數據。沒有OutOfMemoryError
例外。儘管我沒有使用過工具,但性能沒有明顯下降。
Windows中也沒有問題。
在休眠我不手動使用註釋,但打開和關閉會話和tranasction。
sessionFactory = new Configuration().configure(CONFIG_FILE_LOCATION).buildSessionFactory();
session = sessionFactory.getSessionFactory().openSession();
session.beginTransaction();
...
session.close();