aboutsummaryrefslogtreecommitdiffstats
path: root/benchmark
diff options
context:
space:
mode:
authorKouhei Yanagita <yanagi@shakenbu.org>2023-09-19 15:29:35 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-09-21 10:30:58 +0900
commit7e350f53107533856b0a87c26e5a1e5505ea5d59 (patch)
treee524ab366c7203fd90474123a8c385b826eb6a7b /benchmark
parentab637cad2b582e8247bafd87a3b0f6323d564f64 (diff)
downloadruby-7e350f53107533856b0a87c26e5a1e5505ea5d59.tar.gz
Optimize Range#bsearch for beginless/endless ranges within Fixnum
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/range_bsearch.yml24
1 files changed, 18 insertions, 6 deletions
diff --git a/benchmark/range_bsearch.yml b/benchmark/range_bsearch.yml
index 9a7388ab04..8d7bedb662 100644
--- a/benchmark/range_bsearch.yml
+++ b/benchmark/range_bsearch.yml
@@ -1,9 +1,21 @@
prelude: |
- r = (1..)
+ re = (1..)
+ rb = (..0)
benchmark:
- '10**1': r.bsearch { |x| x >= 10 }
- '10**2': r.bsearch { |x| x >= 100 }
- '10**3': r.bsearch { |x| x >= 1000 }
- '10**4': r.bsearch { |x| x >= 10000 }
- '10**5': r.bsearch { |x| x >= 100000 }
+ 'endless 10**0': re.bsearch { |x| x >= 1 }
+ 'endless 10**1': re.bsearch { |x| x >= 10 }
+ 'endless 10**2': re.bsearch { |x| x >= 100 }
+ 'endless 10**3': re.bsearch { |x| x >= 1000 }
+ 'endless 10**4': re.bsearch { |x| x >= 10000 }
+ 'endless 10**5': re.bsearch { |x| x >= 100000 }
+ 'endless 10**10': re.bsearch { |x| x >= 10000000000 }
+ 'endless 10**100': re.bsearch { |x| x >= 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 }
+ 'beginless -10**0': rb.bsearch { |x| x >= -1 }
+ 'beginless -10**1': rb.bsearch { |x| x >= -10 }
+ 'beginless -10**2': rb.bsearch { |x| x >= -100 }
+ 'beginless -10**3': rb.bsearch { |x| x >= -1000 }
+ 'beginless -10**4': rb.bsearch { |x| x >= -10000 }
+ 'beginless -10**5': rb.bsearch { |x| x >= -100000 }
+ 'beginless -10**10': rb.bsearch { |x| x >= -10000000000 }
+ 'beginless -10**100': rb.bsearch { |x| x >= -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 }