I've been analyzing the performance of a little side project I'm doing with drools, and I've noticed that mvel churns through a huge number of HashMap creations when evaluating expressions. The main problem is in the org.mvel2.integration.impl.ClassImportResolverFactory constructor, which is called every time org.drools.base.mvel.MVELPredicateExpression.evaluate() is called. (Which is, of course, a LOT.) In my case I'm seeing the vast majority of activity in org.drools.rule.PredicateConstraint.isAllowedCachedRight(), so maybe this is something controllable by changing a rule, but I'm not sure. I've watched literally gigabytes per second of HashMap.Entry objects being created. Is there some way around this? I know this may be a better question for the mvel dev list, but I wanted to bring it to your
attention.
|