Rule executeable model is fast to load and running because it has pre-comipled into java bytecode before running.
This project is original generated by exporting a project in business-central.
You have to add the following to enable rules compiled into byte code since by default exporting project from Business central, there is no drools-model-comiler included:
<!--This is required for compile execution model-->
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-model-compiler</artifactId>
<version>7.39.0.Final-redhat-00005</version>
</dependency>
cd rules
mvn clean install -DskipTests
#You would notice that there 10000 java/class file was generated by kie-maven-plugin
# The rule package is spreadsheet-decisiontable-1.0-SNAPSHOT.jar
cd ../myapp
mvn clean package -DskipTests
Initialize Kie Session elapsed time: 1826
fired rules: 1 elapsed time: 167
Is Object Pass:false
You can also try the following to check the generated java byte code
unzip -jar target/spreadsheet-decisiontable-1.0-SNAPSHOT.jar
By default, I disable 100kTable.xls since it takes above 10mins to compile;
Rename rules/src/main/resources/com/myspace/spreadsheet_decisiontable/ 10kTable.xls ->10kTable.xls.deactive 100kTable.xls.deactive->100kTable.xls
cd rules
mvn clean install -DskipTests
#It took me 16 mins in my lapto to compile, there are 100k java files generated
# The rule package is spreadsheet-decisiontable-1.0-SNAPSHOT.jar
cd ../myapp
mvn clean package -DskipTests
Initialize Kie Session elapsed time: 21885
fired rules: 1 elapsed time: 8603
Is Object Pass:false
For 10K rules, fire one rule cost ~150 millseconds time;
For 100k rules, fire one rule costs about 8000+ millseconds time;
The compilation takes very long time due to large amounts of java code being generated;
for 10k rules, Pre-Compilation takes 1.5 minutes
For 100k rules, it takes around 15+ minutes to compile;
(Maven parallel compilation doesn't work due to kie-maven-plugin is not thread safe;)