You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "mgroovy (Jira)" <ji...@apache.org> on 2021/10/15 00:03:00 UTC

[jira] [Updated] (GROOVY-10307) Groovy 4 runtime performance on average 2.4x slower than Groovy 3

     [ https://issues.apache.org/jira/browse/GROOVY-10307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

mgroovy updated GROOVY-10307:
-----------------------------
    Description: 
Groovy 4.0.0-beta-1 runtime performance in our framework is on average 2 to 3 times slower compared to using Groovy 3.0.9 (regular i.e. non-INDY)

* Our complete framework and application code is completely written in Groovy, spread over multiple IntelliJ modules
** mixed @CompileDynamic/@TypeChecked and @CompileStatic
** No Java classes left in project, i.e. no cross compilation occurs
* We build using IntelliJ 2021.2 Groovy build process, then run / deploy the compiled class files
** We do _not_ use a Groovy based DSL, nor do we execute Groovy scripts during execution
* Performance degradation when using Groovy 4.0.0-beta-1 instead of Groovy 3.0.9 (non-INDY):
** The performance of the largest of our web applications has dropped 3x (startup) / 2x (table refresh) respectively
*** Stack: Tomcat/Vaadin/Ebean plus framework generated SQL
** Our test suite about runs about 2.4 times as long as before (120 min when using G4, compared to about 50 min with G3)
*** JUnit 5 
*** test suite also contains no scripts / dynamic code execution
*** Individual test performance varies: A small number of tests runs faster, but the majority is slower, with some extreme cases taking nearly 10x as long to finish
** Using Groovy 3.0.9 INDY displays nearly identical performance degradation, so it seems that the use of invoke dynamic is somehow at fault

  was:
Groovy 4.0.0-beta-1 runtime performance in our framework is on average 2 to 3 times slower compared to using Groovy 3.0.9 (regular i.e. non-INDY)

* Our complete framework and application code is completely written in Groovy, spread over multiple IntelliJ modules
** mixed @CompileDynamic/@TypeChecked and @CompileStatic
** No Java classes left in project, i.e. no cross compilation occurs
* We build using IntelliJ 2021.2 Groovy build process, then run / deploy the compiled class files
** We do _not_ use a Groovy based DSL, nor do we execute Groovy scripts during execution
* Performance degradation when using Groovy 4.0.0-beta-1 instead of Groovy 3.0.9 (non-INDY):
** The performance of the largest of our web applications has dropped 3x (startup) / 2x (table refresh) respectively
*** Stack: Tomcat/Vaadin/Ebean plus framework generated SQL
** Our test suite about runs about 2.4 times as long as before (120 min when using G4, compared to about 50 min with G3)
*** test suite also contains no scripts / dynamic code execution
*** Individual test performance varies: A small number of tests runs faster, but the majority is slower, with some extreme cases taking nearly 10x as long to finish
** Using Groovy 3.0.9 INDY displays nearly identical performance degradation, so it seems that the use of invoke dynamic is somehow at fault


> Groovy 4 runtime performance on average 2.4x slower than Groovy 3
> -----------------------------------------------------------------
>
>                 Key: GROOVY-10307
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10307
>             Project: Groovy
>          Issue Type: Bug
>          Components: bytecode
>    Affects Versions: 4.0.0-beta-1, 3.0.9
>         Environment: OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
> OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
> WIN10 (tests) / REL 8 (web application)
> IntelliJ 2021.2 
>            Reporter: mgroovy
>            Priority: Major
>
> Groovy 4.0.0-beta-1 runtime performance in our framework is on average 2 to 3 times slower compared to using Groovy 3.0.9 (regular i.e. non-INDY)
> * Our complete framework and application code is completely written in Groovy, spread over multiple IntelliJ modules
> ** mixed @CompileDynamic/@TypeChecked and @CompileStatic
> ** No Java classes left in project, i.e. no cross compilation occurs
> * We build using IntelliJ 2021.2 Groovy build process, then run / deploy the compiled class files
> ** We do _not_ use a Groovy based DSL, nor do we execute Groovy scripts during execution
> * Performance degradation when using Groovy 4.0.0-beta-1 instead of Groovy 3.0.9 (non-INDY):
> ** The performance of the largest of our web applications has dropped 3x (startup) / 2x (table refresh) respectively
> *** Stack: Tomcat/Vaadin/Ebean plus framework generated SQL
> ** Our test suite about runs about 2.4 times as long as before (120 min when using G4, compared to about 50 min with G3)
> *** JUnit 5 
> *** test suite also contains no scripts / dynamic code execution
> *** Individual test performance varies: A small number of tests runs faster, but the majority is slower, with some extreme cases taking nearly 10x as long to finish
> ** Using Groovy 3.0.9 INDY displays nearly identical performance degradation, so it seems that the use of invoke dynamic is somehow at fault



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