我有一个Java EE项目。 在一个EJB中,我需要迭代一个包含35.000个对象的大型List。 在每个循环中,在数据库中进行比较,并使用JPA& amp; EntityManager的。
在开始时,解析500行(可接受)大约需要5到7秒,但逐渐减慢。在10.000次迭代之后,处理500行需要26秒! :
我查看了visualVM,但我找不到CPU故障或内存泄漏:
我尝试使用" classic" for语句,对于每个",Java 8 Stream,但结果是相同的。
为什么放慢速度?
答案 0 :(得分:0)
我会尝试在黑暗中拍摄并说数据库可能是你的瓶颈 插入的越多,数据库必须与之比较的条目就越多。因此,执行该特定任务所需的时间可能会增加 在这种情况下,创建表索引也可能是一个问题。 你可能想要更多地分解你的任务,这样你就可以找到真正的瓶颈,但没有进一步的信息就没有明确的答案。