Как я вижу, при запуске приложения в режиме отладки существует 4 разных потока, на которых работает Drools. Когда я запускаю приложение с двумя потоками, которые одновременно запускают два входа параллельно, остаются те же 4 потока (они не обращаются, например, к 8). Мой вопрос в том, есть ли возможность запускать входы в отдельном приложении (и при этом запускается отдельное приложение Drools), или все это покрывается, и мы получаем те же результаты с использованием одного приложения и запускаем входы в параллельно?Несколько входов, работающих параллельно в одном приложении, против запуска нового приложения для каждого входа
1
A
ответ
1
Преимущества использования 1 JVM-х:
- куча пулы
- JIT компиляции только один раз в Java коде только
- JIT компиляции раз в DRL код тогда и только тогда вы повторно ваши kiebases
- Возможность реализации очередей и круговое решение. См. Вопрос SolverManager и
runnablePartThreadLimit
в разделе «Разделенный поиск» (который также будет поддерживаться в SolverManager в какой-то момент).
Преимущества использования нескольких JVM-х:
- Garbage Collector работает более эффективно, как правило
- Возможность связать ОС (особенно на Linux) идентификатор процесса на конкретные сердечников. Это позволяет делать круговое решение через конфигурацию ОС.
Можете ли вы ввести больше за время путем «запуска двух входов»? Проблема заключается (как всегда) в том, являетесь ли вы (изначально) связанными с i/o или вычислительными. Тогда это зависит от количества ваших ядер. Это может измениться с одной версии Drools на другую. И с объемом обработки, который должен выполнить движок, т. Е. Вашими правилами. - Контрольный показатель. – laune