This topic applies to Java version only
QueryStarted and QueryFinished events can be used to gather various statistics about query execution.
For example you can use queryStarted() and queryFinished() events to calculate query time, and activated() event to count objects activated in a query.
Java version provides an example of query events usage in QueryStats class from tools package.
In order to use QueryStats:
QueryStats
stats = new QueryStats();
stats.connect(db);
ObjectSet
result = q.execute();
long
executionTime = stats.executionTime();
int
activationCount = stats.activationCount();
stats.disconnect();