Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
4.0.0-beta-1, 3.0.9
-
None
-
None
-
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
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 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
- The performance of the largest of our web applications has dropped 3x (startup) / 2x (table refresh) respectively
- Using Groovy 3.0.9 INDY displays nearly identical performance degradation, so it seems that the use of invoke dynamic is somehow at fault
Attachments
Attachments
Issue Links
- Blocked
-
GROOVY-10232 Massive increase in memory usage due to CacheableCallSite
- Closed
- relates to
-
GROOVY-10454 Performance issue with "Parrot" parser in Groovy 3.x
- Open