Hello All,
I'm working at HP Software R&D and we are considering using drools in our
product.
Benchmarking tests showed that running 10,000 rules consumes 382mb.
This is too high for our system requirements, and we would like to know how we can improve
it.
Technical details:
- Drools version: 5.1 with default configuration.
- All rules look like this:
rule "status-Fixed-Open"
when
event : FieldChangedEvent(fieldName == "status",
oldValue == "Fixed");
entity : Entity(entityType == "mock-entity");
eval(((String)
entity.getFieldValue("status")).equals("Open"));
then
do Something...
end
- Loading code:
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
for(all resources)
{
knowledgeBuilder.add(resource, ResourceType.DRL);
}
knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
knowledgeBase.addKnowledgePackages(knowledgeBuilder.getKnowledgePackages());
Any insights are most appreciated.
Thank You,
Liron, HP Software R&D