[ https://issues.apache.org/jira/browse/HIVE-8188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14140232#comment-14140232 ]
Prasanth J commented on HIVE-8188: ---------------------------------- I tried to avoid this reflection invocation multiple times in inner loop by computing total aggregation size once and reusing it in inner loop. I ran the following query {code} select ss_quantity, ss_store_sk, ss_promo_sk, count(ss_list_price), count(ss_sales_price), sum(ss_ext_sales_price) from store_sales_orc group by ss_quantity,ss_store_sk,ss_promo_sk; {code} store_sales had 2880404 rows. The original execution time was 18.5s and with the above changes the time went down to 15.5s which is ~17% gain which explains the reflection cost from the attached image. > ExprNodeGenericFuncEvaluator::_evaluate() loads class annotations in a tight > loop > --------------------------------------------------------------------------------- > > Key: HIVE-8188 > URL: https://issues.apache.org/jira/browse/HIVE-8188 > Project: Hive > Issue Type: Bug > Components: UDF > Affects Versions: 0.14.0 > Reporter: Gopal V > Attachments: udf-deterministic.png > > > When running a near-constant UDF, most of the CPU is burnt within the VM > trying to read the class annotations for every row. > !udf-deterministic.png! -- This message was sent by Atlassian JIRA (v6.3.4#6332)