Ruby 2.6.1 velocizzerà Discourse!

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.

37 Mi Piace