|
36 | 36 |
|
37 | 37 | Idioms |
38 | 38 | ------ |
39 | | -### Method |
40 | | -#### call vs send vs method_missing [code](code/method/call-vs-send-vs-method_missing.rb) |
41 | | - |
42 | | -``` |
43 | | -$ ruby -v code/method/call-vs-send-vs-method_missing.rb |
44 | | -ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0] |
45 | | -
|
46 | | -Calculating ------------------------------------- |
47 | | - call 72.324k i/100ms |
48 | | - send 70.775k i/100ms |
49 | | - method_missing 63.545k i/100ms |
50 | | -------------------------------------------------- |
51 | | - call 2.566M (± 9.6%) i/s - 12.729M |
52 | | - send 2.527M (± 9.3%) i/s - 12.527M |
53 | | - method_missing 1.924M (± 8.8%) i/s - 9.595M |
54 | | -
|
55 | | -Comparison: |
56 | | - call: 2566314.9 i/s |
57 | | - send: 2527436.5 i/s - 1.02x slower |
58 | | - method_missing: 1923544.5 i/s - 1.33x slower |
59 | | -``` |
60 | | - |
61 | 39 |
|
62 | 40 | ### General |
63 | 41 |
|
@@ -117,6 +95,30 @@ Comparison: |
117 | 95 | module_eval with string: 1129.7 i/s - 1.19x slower |
118 | 96 | ``` |
119 | 97 |
|
| 98 | +#### Method Invocation |
| 99 | + |
| 100 | +##### `call` vs `send` vs `method_missing` [code](code/method/call-vs-send-vs-method_missing.rb) |
| 101 | + |
| 102 | +``` |
| 103 | +$ ruby -v code/method/call-vs-send-vs-method_missing.rb |
| 104 | +ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] |
| 105 | +
|
| 106 | +Calculating ------------------------------------- |
| 107 | + call 115.094k i/100ms |
| 108 | + send 105.258k i/100ms |
| 109 | + method_missing 100.762k i/100ms |
| 110 | +------------------------------------------------- |
| 111 | + call 3.811M (± 5.9%) i/s - 18.991M |
| 112 | + send 3.244M (± 7.2%) i/s - 16.210M |
| 113 | + method_missing 2.729M (± 9.8%) i/s - 13.401M |
| 114 | +
|
| 115 | +Comparison: |
| 116 | + call: 3811183.4 i/s |
| 117 | + send: 3244239.1 i/s - 1.17x slower |
| 118 | + method_missing: 2728893.0 i/s - 1.40x slower |
| 119 | +``` |
| 120 | + |
| 121 | + |
120 | 122 | ### Array |
121 | 123 |
|
122 | 124 | ##### `Array#bsearch` vs `Array#find` [code](code/array/bsearch-vs-find.rb) |
|
0 commit comments