Optaplanner;允许的大小限制是多少?

时间:2015-12-05 11:21:57

标签: optaplanner

我的问题是80000的问题,但是当我超过这个限制时我卡住了,

Optaplanner中使用的问题大小是否有限制?

这是什么限制?

当我超过此限制(80000)

时,我收到了Java堆异常

1 个答案:

答案 0 :(得分:1)

要考虑一些想法:

1)为JVM提供更多内存:-Xmx=2G

2)使用更有效的数据结构。 80k实例很容易融入小内存。我敢打赌,你在两个系列之间有某种交叉矩阵。例如,20k VRP位置的距离矩阵需要(20k)² = 400m个整数(每个至少4个字节),因此它需要几乎2GB的RAM才能以最有效的形式(数组)保存在内存中。 使用分析器(如JProfiler或VisualVM)找出哪些数据结构占用了大量内存。

3)阅读关于“计划克隆”的章节。有时在Job和JobAssignment中分割Job可以节省内存,因为只需要克隆JobAssignment,而在另一种情况下,引用Job的所有内容也需要克隆计划。