Actions
Feature #12996
closedOptimize Range#===
Status:
Closed
Assignee:
-
Target version:
-
Description
The proposal is that Range#=== optimize by reducing method calls.
Benchmark¶
$ cat t.rb
i = 0
while i < 1_000_000
case i
when 1..1000
end
i += 1
end
$ time ./miniruby -e 1
./miniruby -e 1 0.01s user 0.00s system 85% cpu 0.013 total
Before¶
$ time ./miniruby t.rb
./miniruby t.rb 0.60s user 0.00s system 99% cpu 0.605 total
After¶
$ time ./miniruby t.rb
./miniruby t.rb 0.41s user 0.00s system 99% cpu 0.420 total
Important point¶
Break compatibility in this case.
I don't know how to fix this issue.
But I think, This is a key sentence maybe.
https://github.com/ruby/ruby/blob/8130ee5c9dea6d1323d41271cc01c8dc5d8bcc5d/range.c#L1176
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0