Details
-
Improvement
-
Status: Done
-
Major
-
Resolution: Done
-
None
-
None
-
None
Description
when query has group by, current implementation first build array of json object with scoreSum. after that sort this array by looking up json path with “scoreSum” key which is unnecessary. worse part is after look up, JsValue need to be casted as double which is very slow. profiling with visualvm shows that this JsValue.as[Double] use 7% of cpu cycle.
we already know what is scoreSum before sorting and costly operation like JsValue.as[Double] should be avoided for performance tuning.
this affect query performance a lot since JsValue.as[Double] should be run on every result edges.
for example, 10k query per second with average result size 100, then 10k x 100 call per second on as[Double] will be called.