Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ~/code/graphql $ ruby -v
- ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin14]
- ~/code/graphql $ ruby struct_bench.rb
- ========================================
- Create and Access
- ========================================
- Warming up --------------------------------------
- Hash#[] 118.707k i/100ms
- Hash#fetch 113.228k i/100ms
- Struct 195.640k i/100ms
- OpenStruct 9.301k i/100ms
- Class 64.503k i/100ms
- Calculating -------------------------------------
- Hash#[] 1.697M (± 4.8%) i/s - 8.547M in 5.049520s
- Hash#fetch 1.571M (± 7.7%) i/s - 7.813M in 5.012878s
- Struct 3.936M (± 4.0%) i/s - 19.760M in 5.028583s
- OpenStruct 98.347k (± 2.9%) i/s - 492.953k in 5.016646s
- Class 767.913k (± 4.0%) i/s - 3.870M in 5.048166s
- Comparison:
- Struct: 3936003.4 i/s
- Hash#[]: 1696710.9 i/s - 2.32x slower
- Hash#fetch: 1570913.6 i/s - 2.51x slower
- Class: 767912.6 i/s - 5.13x slower
- OpenStruct: 98347.4 i/s - 40.02x slower
- ========================================
- Create
- ========================================
- Warming up --------------------------------------
- Hash 125.138k i/100ms
- Struct 212.084k i/100ms
- OpenStruct 57.104k i/100ms
- Class 64.532k i/100ms
- Calculating -------------------------------------
- Hash 1.859M (± 4.0%) i/s - 9.385M in 5.057965s
- Struct 4.707M (± 3.9%) i/s - 23.541M in 5.009567s
- OpenStruct 693.644k (± 3.5%) i/s - 3.483M in 5.027858s
- Class 787.318k (± 5.9%) i/s - 3.936M in 5.019975s
- Comparison:
- Struct: 4706838.4 i/s
- Hash: 1858592.0 i/s - 2.53x slower
- Class: 787317.8 i/s - 5.98x slower
- OpenStruct: 693644.2 i/s - 6.79x slower
- ========================================
- Access
- ========================================
- Warming up --------------------------------------
- Hash#[] 284.267k i/100ms
- Hash#fetch 262.122k i/100ms
- Struct 282.285k i/100ms
- OpenStruct 205.608k i/100ms
- Class 293.014k i/100ms
- Calculating -------------------------------------
- Hash#[] 8.841M (± 7.8%) i/s - 43.777M in 5.004526s
- Hash#fetch 6.977M (± 5.0%) i/s - 34.862M in 5.009896s
- Struct 8.774M (± 4.3%) i/s - 44.036M in 5.028365s
- OpenStruct 4.297M (± 3.5%) i/s - 21.589M in 5.030635s
- Class 9.553M (± 5.9%) i/s - 47.761M in 5.017911s
- Comparison:
- Class: 9553056.9 i/s
- Hash#[]: 8840715.6 i/s - same-ish: difference falls within error
- Struct: 8774498.7 i/s - same-ish: difference falls within error
- Hash#fetch: 6976943.2 i/s - 1.37x slower
- OpenStruct: 4296913.4 i/s - 2.22x slower
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement