fastruby / fastruby/fast-ruby

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

Open
#225 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
5.7k
Forks
371
PR merge metrics
No merged PRs in 30d

Description

```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
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.