Feature #17614
Updated by S_H_ (Shun Hiraoka) over 3 years ago
Improve performance `Float#negative?` and `Float#positive?`(write in Ruby)
benchmark:
```yml
prelude: |
flo = 4.2
benchmark:
negative?: |
flo.negative?
positive?: |
flo.positive?
loop_count: 20000000
```
result:
```bash
sh@DESKTOP-L0NI312:~/rubydev/build$ make benchmark/benchmark.yml -e COMPARE_RUBY=~/.rbenv/shims/ruby -e BENCH_RUBY=../install/bin/ruby
generating vm_call_iseq_optimized.inc
vm_call_iseq_optimized.inc unchanged
compare-ruby: ruby 3.1.0dev (2021-02-08T12:46:07Z master 4186cd6435) [x86_64-linux]
built-ruby: ruby 3.1.0dev (2021-02-08T13:12:22Z improve_float_method 0dbc6d3f5f) [x86_64-linux]
# Iteration per second (i/s)
| |compare-ruby|built-ruby|
|:----------|-----------:|---------:|
|negative? | 80.954M| 94.642M|
| | -| 1.17x|
|positive? | 79.471M| 95.963M|
| | -| 1.21x|
```
`COMPARE_RUBY` is `ruby 3.1.0dev (2021-02-08T12:46:07Z master 4186cd6435) [x86_64-linux]`. BENCH_RUBY is ahead of `ruby 3.1.0dev (2021-02-08T12:46:07Z master 4186cd6435) [x86_64-linux]`.
pull requests:
https://github.com/ruby/ruby/pull/4160