[ 
https://issues.apache.org/jira/browse/CALCITE-1012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049395#comment-15049395
 ] 

Vladimir Sitnikov commented on CALCITE-1012:
--------------------------------------------

{code:java}
  public void ReInit(java.io.Reader stream) {
    jj_input_stream.ReInit(stream, 1, 1);
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 4; i++) jj_la1[i] = -1;
/* line 16697 */    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = 
new JJCalls();  // <-- This allocates quite a bit of objects
  }
{code}

Trivial {{jjcalls.clear()}} trims down allocations to 5'000 bytes:
{code:java}
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
+    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i].reset();
..
  static final class JJCalls {
    int gen;
    Token first;
    int arg;
    JJCalls next;
   
// added 
    public void reset() {
      gen = 0;
      first = null;
      arg = 0;
      next = null;
    }
  }
{code}

{noformat}
Benchmark                                          (comments)  (length)  Mode  
Cnt      Score      Error   Units
ParserBenchmark.parseCached                              true        10  avgt   
 7     21,804 ±    0,673   us/op
ParserBenchmark.parseCached:·gc.alloc.rate.norm          true        10  avgt   
 7   4952,163 ±    0,906    B/op
ParserBenchmark.parseNonCached                           true        10  avgt   
 7     30,627 ±    0,932   us/op
ParserBenchmark.parseNonCached:·gc.alloc.rate.norm       true        10  avgt   
 7  74552,402 ±    1,564    B/op
{noformat}

> Benchmark SQL parser
> --------------------
>
>                 Key: CALCITE-1012
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1012
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>         Attachments: allocations1.png, allocations2.png, allocations3.png, 
> allocations4.png
>
>




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

Reply via email to