mirror of https://github.com/apache/druid.git
7552dc49fb
I was looking into a query which was performing a bit poorly because the case_searched was touching more than 1 columns (if there is only 1 column there is a cache based evaluator). While I was doing that I've noticed that there are a few simple things which could help a bit: use a static TRUE/FALSE instead of creating a new object every time create the ExprEval early for ConstantExpr -s (except the one for BigInteger which seem to have some odd contract) return early from type autodetection these changes mostly reduce the amount of garbage the query creates during case_searched evaluation; although ExpressionSelectorBenchmark shows some improvements ~15% - but my manual trials on the taxi dataset with 60M rows showed more improvements - probably due to the fact that these changes mostly only reduce gc pressure. |
||
---|---|---|
.. | ||
src/test | ||
assembly.xml | ||
pom.xml |