我今天一直在调查整体性能,非常惊喜地看到 Ruby 的新版本(2.6.1)既降低了内存占用,又提升了 Discourse 的速度。
特别是查看 Discourse 基准测试 的结果:
RSS 从 293332 字节降低到了 262140 字节!
中位数请求时间
| 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% |
第 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% |
第 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% |
第 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% |
我们还需要一些时间才能升级到 2.6.1,预计将在 2-3 个月内完成切换。此外,我们仍需在 rubybench.org 上验证这些结果。尽管如此,这些初步结果极具前景。
我们通常预期会有 7% 的性能提升,但每 100 个请求中会有 1 个出现 15-40% 的延迟。我对这些结果的理解是:运行时速度变快了,但主要垃圾回收(GC)时间却略微变慢了。