[
https://issues.jboss.org/browse/DROOLS-667?page=com.atlassian.jira.plugin...
]
Geoffrey De Smet commented on DROOLS-667:
-----------------------------------------
I think the difference is because of stateful or stateless. In TTP, it's used in a
statefull context, with thousands of fireAllRules() calls on 1 KieBase. In the
microbenchmark I saw earlier, it's used in just 1 fireAllRules().
Profile why day.index is so much slower than day.getIndex()
-----------------------------------------------------------
Key: DROOLS-667
URL:
https://issues.jboss.org/browse/DROOLS-667
Project: Drools
Issue Type: Enhancement
Affects Versions: 6.2.0.CR3
Reporter: Geoffrey De Smet
Assignee: Mario Fusco
day.index is 3 times slower than day.getIndex() (and it's gets more as the dataset
grows)
As discussed with Mario. Rough benchmark speeds here:
https://gist.github.com/ge0ffrey/7662856f357dbec7f7ec
Reproduce recipe
- git clone optaplanner
- Run TravelingTournamentApp, load dataset bra24, solve it for about 30 seconds.
- Open travelingTournamentScoreRules.drl. Replace all occurrences of
"day.getIndex()" with "day.index".
- Run TravelingTournamentApp again, load dataset bra24, solve it for about 30 seconds
again.
- Compare the last log message of both runs: look for average calculate count per second
(x). Higher is faster. For bra24, day.getIndex() is 3 times faster than day.index.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)