Несколько входов, работающих параллельно в одном приложении, и запуск нового приложения для каждого входа

Как я вижу, при запуске приложения в режиме отладки есть 4 разных потока, в которых работает Drools. Когда я запускаю приложение с двумя потоками, параллельно запускающими два входа, остаются те же 4 потока (например, они не превращаются в 8). Мой вопрос заключается в том, есть ли польза от запуска входов в отдельном приложении (и с этим запускается отдельное приложение Drools), или все это покрыто, и мы в итоге получаем те же результаты, используя одно приложение и запуская входы параллельно?

1 ответ

Решение

Преимущества использования 1 JVM:

  • объединение кучи
  • JIT компиляция только один раз в коде Java
  • JIT-компиляция только один раз в коде DRL, если вы повторно используете ваши kiebases
  • Возможность реализации очередей и кругового решения. Смотрите проблему SolverManager и runnablePartThreadLimitцель в Partitioned Search (который также будет поддерживаться в SolverManager в какой-то момент).

Преимущества использования нескольких JVM:

  • Сборщик мусора обычно работает эффективнее
  • Возможность связать идентификаторы процессов ОС (особенно в Linux) с конкретными ядрами. Это позволяет выполнять циклическое решение через конфигурацию ОС.
Другие вопросы по тегам