fastruby / fastruby/fast-ruby

Comparison logic vs `between?` vs `include?`

未关闭
#225 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Ruby
星标
5.7k
派生
371
PR 合并指标
30 天内没有已合并 PR

描述

```ruby
#!/usr/local/bin/ruby

require 'benchmark/ips'

Benchmark.ips do |x|
value = 42

x.report('>= && <=') { value >= 1000 && value <= 2000 }
x.report('include?') { (1000..2000).include?(value) }
x.report('between?') { value.between?(1000, 2000) }

x.compare!
end
```
```console
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin19]

$ ruby bench.rb
Warming up --------------------------------------
>= && <= 2.351M i/100ms
include? 1.139M i/100ms
between? 1.244M i/100ms
Calculating -------------------------------------
>= && <= 23.476M (± 1.3%) i/s - 117.558M in 5.008408s
include? 11.117M (± 8.2%) i/s - 55.807M in 5.057945s
between? 11.021M (± 6.8%) i/s - 55.959M in 5.102033s

Comparison:
>= && <=: 23475928.0 i/s
include?: 11117073.1 i/s - 2.11x slower
between?: 11020978.6 i/s - 2.13x slower
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。