目前,我们希望在管理知识密集型进程的系统中使用drools。
据我所知,关于drools的性能测试的信息和结果很少,也很难找到。
虽然用例差异很大,但了解常见的瓶颈(例如,插入是一个)以及在某些情况下绕过它们的可能的最佳实践将是很好的。此外,更多地了解性能有助于评估Drools是否是解决手头问题的可行方案。
例如,是否有关于drools的性能指标和性能测试的信息?
发布于 2020-02-09 06:51:10
在使用drools时,我发现唯一的陷阱是在块编写时。不要在when块中使用计算。这就是drools对getters的描述!
Person( age == 50 )
// this is the same as:
Person( getAge() == 50 )便笺
我们建议使用属性访问(age)而不是显式使用getters (getAge()),因为通过字段索引可以增强性能。(source)
那么默认情况下,块是由同一(单个)线程执行的。这就是你的专业精神,让它变得高效。使用异步处理(Spring中的@Anync)、线程池、java并行流等。
您可以使用jvisualvm来分析运行,其中规则将作为顺序的java方法调用列出,并且您可以使用任何其他工具来分析代码中的瓶颈,例如用于测试和实时环境的this库。
https://stackoverflow.com/questions/44925752
复制相似问题