Hoje estive investigando o desempenho geral e fiquei muito agradavelmente surpreso ao ver que a nova versão do Ruby (2.6.1) reduz tanto o uso de memória quanto acelera o Discourse.
Em particular, analisando o Discourse bench:
O RSS foi reduzido de 293332 para 262140 bytes!
Tempo mediano de solicitação
| route | 2.5.3 (ms) | 2.6.1 (ms) | change |
|---|---|---|---|
| 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% |
Percentil 75
| route | 2.5.3 | 2.6.1 | change |
|---|---|---|---|
| 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% |
Percentil 90
| route | 2.5.3 | 2.6.1 | change |
|---|---|---|---|
| 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% |
Percentil 99
| route | 2.5.3 | 2.6.1 | change |
|---|---|---|---|
| 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% |
Levará um pouco de tempo antes de atualizarmos para a versão 2.6.1; provavelmente faremos a transição em 2 a 3 meses. Também ainda precisamos validar esses resultados no rubybench.org. Dito isso, esses resultados iniciais são incrivelmente promissores.
Geralmente, esperamos uma melhoria de 7%, no entanto, 1 a cada 100 solicitações sofrerá uma lentidão de 15-40%. Minha interpretação dos resultados é que o runtime ficou mais rápido, mas o tempo do GC (coleta de lixo) principal tornou-se um pouco mais lento.