Тесты производительности Drools
В настоящее время мы стремимся использовать drools в системе для управления наукоемкими процессами.
Насколько мне известно, информация о результатах испытаний, проведенных для слюн, и их результаты, скудны и их трудно найти.
Хотя варианты использования сильно различаются, было бы хорошо знать общие узкие места (например, вставки) и возможные рекомендации по их устранению для определенных сценариев. Кроме того, знание о производительности в целом может помочь оценить, является ли Drools жизнеспособным решением проблем.
Есть ли какая-либо информация, например, о показателях производительности и тестах производительности для доступных слюн?
0 ответов
Единственная серьезная ошибка, которую я обнаружил при работе со слюнями, связана с созданием блоков. Не используйте вычисления в блоках when. Это то, что слюнки говорят даже о геттерах!:
Person( age == 50 )
// this is the same as:
Person( getAge() == 50 )
Примечание.
Мы рекомендуем использовать доступ к свойству (возраст) вместо явного использования геттеров (getAge()) из-за повышения производительности за счет индексации полей. (источник)
Тогда блок по умолчанию выполняется тем же (единственным) потоком. Теперь это ваш профессионализм, чтобы сделать его эффективным. Используйте асинхронную обработку (@Anync в Spring), пул потоков, параллельные потоки Java и т. Д.
Вы можете использовать jvisualvm для профилирования прогона, где правила будут перечислены как порядковые вызовы метода Java, и вы можете использовать любые другие инструменты для анализа узких мест в вашем коде, нравится эта библиотека для тестов и живых сред.