嗨 我遇到一个奇怪的现象。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();