The performance issue can be reproduced by the following script, which is
placed under "nextflow-master\modules\nextflow" directory:
(GenerateStubs.groovy)
```
def ant = new groovy.ant.AntBuilder()
ant.project.baseDir = new File('.')
ant.delete(dir: 'build')
ant.mkdir(dir: 'build')
ant.taskdef(name: 'generateStubs', classname:
'org.codehaus.groovy.ant.GenerateStubsTask')
def b = System.currentTimeMillis()
ant.generateStubs(srcdir: 'src', destdir: 'build')
def e = System.currentTimeMillis()
println "${(e - b) / 1000}s elapsed"
def buildDir = new File(ant.project.baseDir, "build")
println buildDir.list()
```
The steps to reproduce the performance issue:
```
D:\_TEMP\nextflow-master\modules\nextflow>set JAVA_OPTS=-Xms2g -Xmx2g
-Dgroovy.antlr4.cache.threshold=600 -Dgroovy.antlr4=false
D:\_TEMP\nextflow-master\modules\nextflow>groovy GenerateStubs.groovy
[delete] Deleting directory
D:\_TEMP\nextflow-master\modules\nextflow\build
[mkdir] Created dir: D:\_TEMP\nextflow-master\modules\nextflow\build
[generateStubs] Generating 611 Java stubs to
D:\_TEMP\nextflow-master\modules\nextflow\build
[generateStubs] Generated 779 Java stub(s)
7.977s elapsed
[FunctionalTests.java, groovy, misc, nextflow, test]
D:\_TEMP\nextflow-master\modules\nextflow>set JAVA_OPTS=-Xms2g -Xmx2g
-Dgroovy.antlr4.cache.threshold=600 -Dgroovy.antlr4=true
D:\_TEMP\nextflow-master\modules\nextflow>groovy GenerateStubs.groovy
[delete] Deleting directory
D:\_TEMP\nextflow-master\modules\nextflow\build
[mkdir] Created dir: D:\_TEMP\nextflow-master\modules\nextflow\build
[generateStubs] Generating 611 Java stubs to
D:\_TEMP\nextflow-master\modules\nextflow\build
[generateStubs] Generated 779 Java stub(s)
81.572s elapsed
[FunctionalTests.java, groovy, misc, nextflow, test]
D:\_TEMP\nextflow-master\modules\nextflow>
```
I am quite curious about the antlr2 parser result "7.977s" because "57.177s"
cost when we parsed all the groovy source files with antlr2 parser[1]
Cheers,
Daniel.Sun
[1]
http://groovy.329449.n5.nabble.com/Groovy-3-very-slow-stub-generation-tp5762698p5764332.html
-----
Apache Groovy committer & PMC member
Blog: http://blog.sunlan.me
Twitter: @daniel_sun
--
Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html