我们目前正在努力改善我们在OptaPlanner中实施的规划问题的性能。我们的模型有大约45,000个链式变量,在对应用程序进行分析之后,似乎主要的瓶颈在于克隆。 FieldAccessingSolutionCloner
方法调用消耗了大约90%的CPU运行时间。
我们已经尝试通过减少PlanningEntities中的Maps和Sets的数量来使我们的对象模型更轻量级,在可能的情况下将字段更改为基元,但是根据您自己的OptaPlanner经验,您对如何加速提供任何建议克隆表现?
答案 0 :(得分:2)
您是否尝试过编写自定义克隆程序?查看文档。 默认值需要依赖反射,因此速度较慢。
此外,域模型的结构会影响您需要克隆的数量(无论您是否定制): 如果删除解决方案和规划实体类,您的其他域类是否仍然可以编译? 如果是,那么克隆是最小的。如果不是,那就不是。