[ https://issues.apache.org/jira/browse/DRILL-4777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arina Ielchiieva reassigned DRILL-4777: --------------------------------------- Assignee: Arina Ielchiieva > Fuse generated code to reduce code size and gain performance improvement > ------------------------------------------------------------------------ > > Key: DRILL-4777 > URL: https://issues.apache.org/jira/browse/DRILL-4777 > Project: Apache Drill > Issue Type: Bug > Reporter: Chunhui Shi > Assignee: Arina Ielchiieva > > Drill generates code for operators, compile the classes and load them on the > fly of a query. However, in large query cases, the generated code will become > hundreds KB or could be even bigger. We have seen multiple issues reported > when generated code is too big either due to Java's size limit to one method > or degrated performance of compiling or executing. Also when I looked at JIT > optimization logs, there are many complaining about 'hot method too big' > Some measures can be considered to reduce the code size, such as, > 1) For now Drill embed function calls' code directly into generated code, > this make one line function call to become 5-10 lines code in generated java > classes. If we inject these functions as a private functions of the classes > and directly call them in main function body, this could reduce code size > while the cost of function call can be erased by JIT inline optimization. > 2) Drill generate one variable for each column, if the column number became > dozens to one hundred, the code will be redundant, we could consider using an > array to store the value vectors and loop on top of it so the code size will > be reduced even more. -- This message was sent by Atlassian JIRA (v6.3.4#6332)