Ho investigato le prestazioni generali oggi e sono rimasto molto piacevolmente sorpreso nel vedere che la nuova versione di Ruby (2.6.1) riduce sia l’utilizzo della memoria che accelera Discourse.
In particolare, guardando Discourse bench:
\n\nRSS è stato ridotto da 293332 a 262140 byte!
Tempo di richiesta mediano
| route | 2.5.3 (ms) | 2.6.1 (ms) | cambio |
|---|---|---|---|
| categories | 41 | 39 | 4.88% |
| home | 46 | 43 | 6.52% |
| topic | 54 | 48 | 11.11% |
| categories_admin | 70 | 65 | 7.14% |
| home_admin | 72 | 67 | 6.94% |
| topic_admin | 82 | 77 | 6.10% |
| \n### 75° percentile |
| route | 2.5.3 | 2.6.1 | cambio |
|---|---|---|---|
| categories | 42 | 41 | 2.38% |
| home | 50 | 46 | 8.00% |
| topic | 59 | 51 | 13.56% |
| categories_admin | 75 | 76 | -1.33% |
| home_admin | 78 | 77 | 1.28% |
| topic_admin | 85 | 83 | 2.35% |
\n\n### 90° percentile
| route | 2.5.3 | 2.6.1 | cambio |
|---|---|---|---|
| categories | 49 | 52 | -6.12% |
| home | 56 | 56 | 0.00% |
| topic | 62 | 61 | 1.61% |
| categories_admin | 82 | 81 | 1.22% |
| home_admin | 84 | 82 | 2.38% |
| topic_admin | 93 | 92 | 1.08% |
\n\n### 99° percentile
| route | 2.5.3 | 2.6.1 | cambio |
|---|---|---|---|
| categories | 58 | 81 | -39.66% |
| home | 81 | 108 | -33.33% |
| topic | 76 | 88 | -15.79% |
| categories_admin | 105 | 132 | -25.71% |
| home_admin | 115 | 132 | -14.78% |
| topic_admin | 123 | 142 | -15.45% |
Ci vorrà un po’ di tempo prima di passare a 2.6.1; probabilmente effettueremo il passaggio tra 2 e 3 mesi. Dobbiamo anche convalidare questi risultati su rubybench.org. Detto questo, i risultati iniziali sono incredibilmente promettenti.
In genere ci aspettiamo un miglioramento del 7%, tuttavia 1 richiesta su 100 subirà un rallentamento del 15-40%. La mia interpretazione dei risultati è che il runtime sia diventato più veloce, ma il tempo di GC principale sia diventato un po’ più lento.