Project

General

Profile

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 

Back