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

Daniel Sun edited comment on GROOVY-9588 at 6/25/20, 4:00 AM:
--------------------------------------------------------------

Antlr4 relies on DFA cache heavily for better parsing performance, but DFA 
cache is a global cache and may cause OOME, so we have an option to clear it if 
the threshold reaches: {{-Dgroovy.antlr4.cache.threshold=64}}, the default 
threshold is {{64}}.

If you have set much JVM heap size, you could increase the threshold to greater 
value, e.g. {{-Dgroovy.antlr4.cache.threshold=50000}}, which is much greater 
than the count of your groovy source files. That means the DFA cache will not 
be cleared during compiling.

I wish the above suggestion could help you.


was (Author: daniel_sun):
Antlr4 relies on DFA cache heavily, which is a global cache and may cause OOME. 
So we have a option to clear it if the threshold reaches: 
{{-Dgroovy.antlr4.cache.threshold=64}}, the default threshold is {{64}}.

If you have set much JVM heap size, you could increase the threshold to greater 
value, e.g. {{-Dgroovy.antlr4.cache.threshold=50000}}, which is much greater 
than the count of your groovy source files. That means the DFA cache will not 
be cleared during compiling.

I wish the above suggestion could help you.

> groovyCompile 6x slower in 3.0.4 than 2.5.6
> -------------------------------------------
>
>                 Key: GROOVY-9588
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9588
>             Project: Groovy
>          Issue Type: Bug
>          Components: parser-antlr4
>    Affects Versions: 3.0.4
>            Reporter: Eric Helgeson
>            Priority: Major
>
> _It was suggested I open an issue here as well. I am a user of groovy so do 
> not know a lot of the details that could help diagnose. I would be happy to 
> gather them if told what was required._
> [https://github.com/grails/grails-core/issues/11571]
> We are upgrading a large Grails app with 400+ controllers, 550+ services, 350 
> domains, 4000 files with 950k loc to Grails 4.1.0.M1 + Gradle 5.6.4.
> Using Gradle 5.6.4 with Java 8 & Grails 4.0.3(Groovy 2.5) a 
> clean/groovyCompile took approximately 5 minutes.
>  
> Using Gradle 5.6.4 with Java 11 & Grails 4.1.0.M1(Groovy 3.0.4) a 
> {{clean}}/{{groovyCompile}} takes 33 minutes on a 2019 MBP w/ 2.4 GHz 8-Core 
> Intel Core i9 & 64gb of RAM.
> I have tried giving the groovyCompile task 16/32gb of ram, with no noticeable 
> change. I've also tried -Dgroovy.antlr4=false - but this gave other compile 
> time errors I did not see with it set to true (so was unable to have a full 
> successful compile)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to