If for the first time execution it takes 3 seconds, the subsequent executions should take much less time than that, could be one tenth of that time. If all the subsequent execution take the same time, you need check the XU configuration for caching and asynchronousRulesetParsing.
Even the ODM 8.10 document states that this asynchronousRulesetParsing is set to true by default, but you need to check your system deployed ra.xml file for that configuration. It might have been changed along the way when you are using the file by other people.
#OperationalDecisionManager(ODM)#Support#SupportMigration