Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Drill >> mail # dev >> Janino performance versus javax.tools.JavaCompiler


Copy link to this message
-
Janino performance versus javax.tools.JavaCompiler
I'm working on some of the bytecode stuff for Drill and found some
interesting random testing data:

Java6 adds a new JavaCompiler API.  Janino supports utilizing that
instead of its internal parsing.  The benefit of this is that all the
JDK 5 stuff like generics are fully supported.  Since that seemed
nice, i figured we could use that.

In initial testing, I've actually found it substantially slower than
the Janino compiler.  I ran some crappy microbenchmarks just to see
why my stuff was going so slow.  Running a basic comparison test of
the simple ExpressionEvaluator example utilizing Janino versus JDK
showed an average compile and single invocation time of ~18000 micros
on JDK versus ~950 micros on Janino.

Has anyone else experimented with this/experienced this?

Example block below (straight from Janino docs).

     ExpressionEvaluator ee = new ExpressionEvaluator("c > d ? c : d",
// expression
        int.class, // expressionType
        new String[] { "c", "d" }, // parameterNames
        new Class[] { int.class, int.class } // parameterTypes
    );

    // Evaluate it with varying parameter values; very fast.
    return  (Integer) ee.evaluate(new Object[] { // parameterValues
        new Integer(10), new Integer(11), });
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB