数据库
首页 > 数据库> > Java-JPA / HSQLDB仍在消耗我的所有内存

Java-JPA / HSQLDB仍在消耗我的所有内存

作者:互联网

我正在开发一个程序,该程序可以分析文件中的数据并将其存储到HSQLDB数据库中.当解析器遇到数据时,它将创建实体,这些实体使用JPA / Hibernate映射到数据库.我的问题是,在执行解析时,应用程序使用了越来越多的内存.我已经成功使用了高速缓存的表,以便在解析完成后全部释放内存,但是在解析过程中,它使用的方式超出了我所能接受的范围.

我试图通过在EntityManager上调用flush和clear方法来解决此问题,但这没有效果.我还尝试确保将具有对所有其他实体的引用的Entity保留在内存中.

内存中最大的对象似乎是hsqldb.Sessions. HSQlDb是否可以为每个事务缓存数据负载?仅仅需要一个1GB的RAM才能最终获得一个磁盘上120MB的DB似乎是多余的,不是吗?

请告知我下一步可以尝试的方法.

解决方法:

进行堆转储,并使用Eclipse MAT分析内存的使用位置.使用JPA时,结果通常令人惊讶,而没有查看实际的内存使用情况,您常常会在黑暗中ing刀.

标签:jpa,hibernate,hsqldb,java
来源: https://codeday.me/bug/20191105/1997483.html