Can someone help me understand QNA evaluation times? There seems to be a discrepancy between the local client and the fixlet debugger. It would appear that the local client is reporting only partial time of a given evaluation as opposed to the complete time to evaluate a statement.
Here’s an example
- Query a database and return the results as strings:
((rows of statements "SELECT IssuedTime, IssuerName, ActionName FROM ACTION_HISTORY" of sqlite databases of files "ActionHistory.db" of folders "__Global" of data folders of clients) as string)
- Identical query, but now concatenate the results into a single string:
(concatenations of ((rows of statements "SELECT IssuedTime, IssuerName, ActionName FROM ACTION_HISTORY" of sqlite databases of files "ActionHistory.db" of folders "__Global" of data folders of clients) as string))
When these actions are evaluated through QNA/Local Fixlet Debugger, I get the results I expect i.e. the 2nd statement is slightly slower (after all, I’m taking results and manipulating them). Test time for statement 1 is ~3.700ms. Test time for statement 2 is ~3.800ms. Nice and sensible.
When these actions are evaluated through QNA/Local Client, I get results that don’t make sense to me i.e. the 2nd statement is significantly faster. Test time for statement 1 is ~8.900ms. Test time for statement 2 is ~0.062ms.
Tested using 9.5.13.130 as client and QNA debugger. Please note that the above is just an example statement. Now that I’ve observed it, it seems to hold true for other evaluations - the example just makes the timings more obvious. I’ve tried using different SQL queries to ensure there is no caching, but this can also happen for other complex queries e.g. reading log files etc.
Am I misunderstanding how the local client is meant to return timings? Should I always use the Local Fixlet Debugger and ignore the client? If so, does this throw into question other timings reported by the local client?