个人感觉自己写的控制台程序莫名其妙的黑屏卡机少了一些,是我的心理作用吗?
ruby2.6 不开 jit,会比 ruby2.5 快吗?
会
这个加速主要是由什么内容引起的?
对老版本代码的优化调整 综合快多少可以看下 benchmark. 单向优化的在 issue 里面也有 benchmark 对比。
参攷 2.6.0 Release News 的性能提升章节
$SAFE
Proc#call
通过 lc_fizzbuzz 多次使用 Proc#call 的 benchmark 我们测量到了 1.4 倍性能提升 [漏洞 #10212]。
lc_fizzbuzz
block
block.call
通过与 Ruby 2.5 中引入的提升代码块传递的性能的方法结合,Ruby 2.6 进一步提升了传递代码块调用时的性能。通过 micro-benchmark 我们观察到了 2.6 倍性能提升。[功能 #14045]
瞬态堆是用于管理指向特定类(Array、Hash、Object 和 Struct)短生命周期内存对象的堆。例如,创建小而短生命周期的哈希对象的速度提升到了 2 倍快。根据 rdoc benchmark,我们观察到了 6% 到 7% 的性能提升。
arm32
arm64
ppc64le
win32
win64
x86
amd64
Fiber.yield 与 Fiber#resume 方法在 64 位 Linux 上提升了 5 倍性能。对于使用 Fiber 密集的程序,约有最高 5% 的性能提升。
Fiber.yield
Fiber#resume
这些提升都不是 JIT 带来的,Ruby 2.0 以来的每个大版本都有类似的性能优化。
midori 性能会提升不少吧?