[rules-users] MVEL and nested properties takes longer time to build working memory

Anto Paul antopaul.list at gmail.com
Mon Mar 12 10:36:56 EDT 2012


Hi,
    I have rules that uses nested properties. There are more than thousands
of such rules. Before using any nested properties, time to build working
memory(from decision tables) was pretty fast. After using nested
properties, rule compilation time increased by many folds and it is worse
in environments where NAS is used instead of SCSI disks.

    Worst thing is I am not able to profile app using VisualVM as it gives
error that 64k limit of instrumented methods exceeded. So took some thread
dump using jstack and see that most often thread is doing class loading.
This is performed by MVEL classes.

    On seeing this I used custom class loader in KnowledgeBuilder and
printed all loaded classes. I do not see that MVEL is using custom class
loader and is directly reading class using some other class loader.This
class loading is taking pretty long time when using network disks.

    Is there any way to speed up rule compilation time when using nested
properties.Is there anything like a hint to tell MVEL to load fields of an
object directly from that class instead of searching it in entire
classpath? I see something like "m:" in
MVELDialectRuntimeData.getParserConfiguration().

    Using Drools 5.30 Final and Decision tables.

Thanks,
Anto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120312/92753ea0/attachment.html 


More information about the rules-users mailing list