Spring JPA花费了太多时间和内存来在postgres DB中插入数据

问题描述 投票:0回答:1

我正在开发一个弹簧批量应用程序(具有2 GB内存)并尝试处理数据(使用选择查询以在处理时获取数据)并在postgres DB中插入大约100万个已处理的记录。我在这个项目中使用Spring Data JPA。但Spring JPA在处理这些记录时消耗了太多内存,最后我出现了内存异常。我怀疑创建的实体太多而未被清除。因此我尝试在某些数据库调用后清除entityManager,但没有帮助。如何通过JPA减少内存消耗?任何减少内存消耗的建议都将受到高度赞赏。

performance memory-management spring-data-jpa
1个回答
0
投票

可能的原因

  • http线程数(Undertow默认启动约50个线程,但您可以通过属性增加/减少所需的线程数)
  • 静态变量
  • 使用缓存(memcache,ehcache等)
  • 级联持续
  • 批量写作

server.tomcat.max-threads=5

这将在application.properties中将HTTP请求处理程序线程的数量限制为1(默认值为50)

有关详细信息,请参阅R1 R2 R3

© www.soinside.com 2019 - 2024. All rights reserved.