多个输入在同一个应用程序中并行运行,而不是为每个输入启动一个新应用程序

时间:2017-02-15 01:14:34

标签: drools optaplanner

正如我在调试模式下运行应用程序时所看到的,Drools正在运行4个不同的线程。当我用两个并行运行两个输入的线程启动应用程序时,剩下相同的4个线程(例如,它们不会变为8)。 我的问题是,在单独的应用程序中运行输入是否有好处(并且启动一个单独的Drools应用程序),或者所有这些都被覆盖,我们最终使用一个应用程序并且并行启动输入结果相同?

1 个答案:

答案 0 :(得分:1)

使用1个JVM的优点:

  • 堆池
  • Jcode编译只在java代码中编译一次
  • 如果您重复使用kiebases,则只能在DRL代码中编译一次JIT编辑
  • 实现排队和循环解决的能力。请参阅SolverManager问题和runnablePartThreadLimit在分区搜索中的用途(某些时候也会在SolverManager上支持)。

使用多个JVM的优点:

  • 垃圾收集器通常可以更有效地工作
  • 能够将OS(特别是在Linux上)进程ID链接到特定核心。这允许通过OS配置进行循环求解。