Chunhui Shi created DRILL-4778:
----------------------------------

             Summary: revisit of using two Java compilers for code generation
                 Key: DRILL-4778
                 URL: https://issues.apache.org/jira/browse/DRILL-4778
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Chunhui Shi


Currently Drill uses two Java compilers: Janino when code size is <256K, JDK 
compiler if source code size > 256K.

However, recently I notice that for large source code(~550K), while JDK 
compiler seems 30% faster in compiling, the generated code is 20% larger and 
the execution is much slower(10 times slower in some cases):

2016-07-07 21:17:32,647 [28813914-36f3-8bf5-5d4b-7de2daba5341:frag:0:0] DEBUG 
o.a.d.exec.compile.JDKClassCompiler - Compiling (source size=654.7 KiB):
2016-07-07 21:17:48,806 [28813914-36f3-8bf5-5d4b-7de2daba5341:frag:0:0] DEBUG 
o.a.d.exec.compile.ClassTransformer - Done compiling (bytecode size=300.6 KiB, 
time:16165 millis).
2016-07-07 21:23:52,389 [2881379e-5ebf-966d-c099-f813f9f99ab4:frag:0:0] DEBUG 
o.a.d.e.compile.JaninoClassCompiler - Compiling (source size=654.7 KiB):
2016-07-07 21:24:14,584 [2881379e-5ebf-966d-c099-f813f9f99ab4:frag:0:0] DEBUG 
o.a.d.exec.compile.ClassTransformer - Done compiling (bytecode size=241.8 KiB, 
time:22222 millis).

Seems we should stick to one compiler: Janino only. And we should measure and 
root cause the performance difference of these two compilers especially for 
large queries. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to