J’ai étudié les performances générales aujourd’hui et j’ai été très agréablement surpris de constater que la nouvelle version de Ruby (2.6.1) réduit à la fois l’utilisation de la mémoire et accélère Discourse.
En particulier, en examinant Discourse bench :
L’utilisation de la mémoire RSS passe de 293332 à 262140 octets !
Temps de requête médian
| route | 2.5.3 (ms) | 2.6.1 (ms) | changement |
|---|---|---|---|
| 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 % |
75e percentile
| route | 2.5.3 | 2.6.1 | changement |
|---|---|---|---|
| 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 % |
90e percentile
| route | 2.5.3 | 2.6.1 | changement |
|---|---|---|---|
| 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 % |
99e percentile
| route | 2.5.3 | 2.6.1 | changement |
|---|---|---|---|
| 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 % |
Nous allons mettre un peu de temps avant de passer à la version 2.6.1 ; nous passerons probablement au nouveau système dans 2 à 3 mois. Nous devons également valider ces résultats sur rubybench.org. Cela dit, ces premiers résultats sont incroyablement prometteurs.
Nous nous attendrons généralement à une amélioration de 7 %, mais une requête sur 100 subira un ralentissement de 15 à 40 %. Mon interprétation des résultats est que le runtime est devenu plus rapide, mais que le temps de garbage collection majeur est devenu un peu plus lent.