I've spent the last week analyzing JRules 7.0 Rule Studio build performance. The time it takes to build large rule projects can become a drain on productivity, and it is something we have worked hard on improving in JRules 7. The language team in particular are responsible for converting the business-level rule metaphors, like Action Rules and Decision Tables, to executable IRL code. They have made some great improvements in JRules 7.0, and everyone was anxious to quantify them using real customer projects.
Thanks to our infatigable Product Manager Antony Viaud we were able to perform detailed build performance analysis on 6 rule projects and 1 Java XOM project from a major international bank. I rebuilt all projects ("clean all" inside Eclipse) and measured the build times. Note that "full builds" like this are thankfully not typically required during rule authoring, as we incrementally compile impacted rule artifacts.
Aggregated artifact statistics for the 6 projects:
- Ruleflows: 300
- Variable Sets: 5
- Decision Tables: 363
- BOM classes: 1860
- Vocabulary elements: 1876
- Action Rules: 4206
- Functions: 2
- IRL Rules: 2
As you can see in the chart below, we achieved a 2x performance increase almost across the board. Note that Rule Analysis in JRules 7 performs more semantic checking that Rule Analysis in JRules 6.7 so it is not an apples-to-apples comparison.
All tests were run on my development machine with JDK 1.5.19, with JVM Flags -Xmx1024M -XX:MaxPermSize=128m -Xverify:none -XX:CompileThreshold=100
So, while we are very pleased with these results, and hope they will help make you more productive, we are not complacent. We will keep working on build performance as we know it impacts your workflow and experience with the product.