避免堆空间问题-线程

时间:2019-08-12 16:05:00

标签: java multithreading performance

我确实执行以下步骤:(这整个过程是一个Java进程的一部分)

  1. 从其余Web服务获取父项列表。
  2. 对于每个项目,我们从数据库中获得子列表。
  3. 对于每个子列表,通过传递子列表从其余Web服务获取其详细信息。返回的详细信息是每个客户的,因此响应为列表
  4. 此详细信息存储在一个包含子级详细信息的最终父级列表中。

注意:步骤3和4是循环。

执行以下步骤之后:

  1. 包含详细信息的最终父列表被保存到数据库中。为了保存起见,已使用spring jdbc模板和一个fork联接池,因为列表很大。数据库是Sybase。
  2. 最终父列表用于创建BCP文件。

但是问题是最终父列表太大,从而导致堆空间问题。

有人建议每次都将子详细信息列表刷新到DB和BCP文件,而不要等到结束并使用最终父列表。并并行加载并保存它们。我认为这会增加数据库命中率。

请提出想法。

0 个答案:

没有答案