File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -141,6 +141,24 @@ Custom exception: Kernel#raise: 589148.7 i/s
141141Custom exception: E2MM#Raise: 29004.8 i/s - 20.31x slower
142142```
143143
144+ ##### ` loop ` vs ` while true ` [ code] ( code/general/loop-vs-while-true.rb )
145+
146+ ```
147+ $ ruby -v code/general/loop-vs-while-true.rb
148+ ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
149+
150+ Calculating -------------------------------------
151+ While Loop 1.000 i/100ms
152+ Kernel loop 1.000 i/100ms
153+ -------------------------------------------------
154+ While Loop 0.536 (± 0.0%) i/s - 3.000 in 5.593042s
155+ Kernel loop 0.223 (± 0.0%) i/s - 2.000 in 8.982355s
156+
157+ Comparison:
158+ While Loop: 0.5 i/s
159+ Kernel loop: 0.2 i/s - 2.41x slower
160+ ```
161+
144162#### Method Invocation
145163
146164##### ` call ` vs ` send ` vs ` method_missing ` [ code] ( code/method/call-vs-send-vs-method_missing.rb )
Original file line number Diff line number Diff line change 1+ require "benchmark/ips"
2+
3+ NUMBER = 100_000_000
4+
5+ def fast
6+ index = 0
7+ while true
8+ break if index > NUMBER
9+ index += 1
10+ end
11+ end
12+
13+ def slow
14+ index = 0
15+ loop do
16+ break if index > NUMBER
17+ index += 1
18+ end
19+ end
20+
21+ Benchmark . ips do |x |
22+ x . report ( "While Loop" ) { fast }
23+ x . report ( "Kernel loop" ) { slow }
24+ x . compare!
25+ end
You can’t perform that action at this time.
0 commit comments