Hi,

we have spiked using Groovy 4.0.0-beta-1 with our Groovy framework, to see if the GString improvements would lead to a speedup in our SQL generation code (typically this is irrelevant, and performance is solely decided by SQL optimizations, but we have recently come across a few cases in practice where performance was not bound SQL execution but by the SQL generating code itself).

We had to find workarounds for a few problems (tickets coming), but overall it was much faster/hassle free to get Groovy 4 up and running compared to our recent switch to from Froovy 2.5 to 3, which was nice :-)

Alas performance-wise what we surprisingly found was, that the performance of our main web application dropped by a factor of 2 (table refresh) to 3 (startup). Executing our test suite showed a similar picture. Since no immediate source for this performance drop emerged, we checked the performance of Groovy 3 Indy, more to rule out that the performance reduction had something to do with invokedynamic; as can be seen in the table below, to our surprise performance degradiation of Groovy 3.0.9 with full invokedynamic (Groovy JARs & IntelliJ compiler switch/checkbox active) was in fact in most cases close to the one seen with Groovy 4.0.0-beta-1, pointing to invokedynamic  as the potential cause.

Right now it looks to us, as if Groovy with invokedynamic for us is just "leaking performance everywhere", with no clear source. Speed changes range from about 0.6 (i.e. a speedup) to about 5.0, with a large bias towards a slowdown by a factor of 2.0 to 2.5. The overall time of the test suite increased by a factor of 2.37 (G3 Indy) and 2.45 (G4) respectively.

Any ideas what could be the cause of this unexpected slowdown or where we should put our focus in analyzing this, to create a test case independent of our framwork ?

Cheers,
mg


*Groovy 3.0.9 [s]* *Groovy 3.0.9 INDY [s]* *Groovy 4.0.0-beta-1 [s]* *G3INDY/G3 Ratio* *G4/G3 Ratio*
3038    7200    7440    2.37    2.45
160.146         482.584         467.058         3.01    2.92
115.595         388.332         387.82  3.36    3.35
88.955  141.595         142.205         1.59    1.60
94.743  139.676         138.553         1.47    1.46
65.338  109.143         130.918         1.67    2.00
117.108         129.789         116.748         1.11    1.00
74.182  115.142         110.801         1.55    1.49
30.653  104.733         101.138         3.42    3.30
24.71   80.171  72.541  3.24    2.94
22.586  59.167  60.043  2.62    2.66
41.302  46.675  46.682  1.13    1.13
5.34    51.456  46.045  9.64    8.62
14.066  41.788  43.987  2.97    3.13
20.535  42.441  42.571  2.07    2.07
19.582  43.338  42.493  2.21    2.17
19.937  43.235  42.361  2.17    2.12
23.118  40.245  42.206  1.74    1.83
14.777  34.526  33.725  2.34    2.28
15.23   31.757  33.302  2.09    2.19
15.813  34.246  30.699  2.17    1.94
18.743  33.892  30.436  1.81    1.62
14.855  30.105  27.19   2.03    1.83
10.775  28.514  25.813  2.65    2.40
10.571  26.344  23.289  2.49    2.20
8.084   21.218  21.675  2.62    2.68
9.155   21.571  21.299  2.36    2.33
5.454   18.296  19.425  3.35    3.56
12.987  18.841  18.537  1.45    1.43
10.928  17.93   17.987  1.64    1.65
10.501  9.792   14.374  0.93    1.37
9.455   14.174  14.038  1.50    1.48
3.19    12.39   13.79   3.88    4.32
10.006  13.961  13.264  1.40    1.33
22.858  14.48   13.073  0.63    0.57
4.592   10.176  12.777  2.22    2.78
8.991   12.932  11.908  1.44    1.32
17.245  10.591  10.746  0.61    0.62
2.331   11.443  10.497  4.91    4.50
11.159  10.205  9.911   0.91    0.89
2.362   20.721  9.744   8.77    4.13
9.369   7.543   9.097   0.81    0.97
1.845   9.353   8.483   5.07    4.60
4.647   5.537   8.065   1.19    1.74
8.758   8.806   7.664   1.01    0.88
10.359  9.95    7.657   0.96    0.74
8.954   8.764   7.38    0.98    0.82
2.424   7.37    6.941   3.04    2.86
6.75    6.771   6.84    1.00    1.01
7.476   5.179   6.679   0.69    0.89
1.873   6.785   6.64    3.62    3.55
8.13    5.896   6.564   0.73    0.81
6.892   5.189   6.385   0.75    0.93
5.91    6.153   6.2     1.04    1.05
1.318   4.944   5.585   3.75    4.24

Reply via email to