Sha256: 7ac906e7eb05fecfaace3102db25f0aa321d9f5f799b82d3087f26d04a86595e
Contents?: true
Size: 890 Bytes
Versions: 2
Compression:
Stored size: 890 Bytes
Contents
require_relative '../lib/value_struct' require 'benchmark' require 'immutable_struct' require 'values' COUNT = 1_000_000 def benchmark_for(struct_class) puts "%20s: %s" % [ struct_class, Benchmark.measure do struct = struct_class.new(:a, :b, :c, :d) COUNT.times{ n = struct.new(nil, nil, nil, nil) s = struct.new([1,2,3,4], "value", 23432421412, n) s.a == s.b s.c == s.d s == n } end ] end def benchmark_for_hash puts "%20s: %s" % [ "[Hash]", Benchmark.measure do COUNT.times{ n = { a: nil, b: nil, c: nil, d: nil } s = { a: [1,2,3,4], b: "value", c: 23432421412, d: nil } s[:a] == s[:b] s[:c] == s[:d] s == n } end ] end benchmark_for(Struct) benchmark_for(Value) benchmark_for(ImmutableStruct) benchmark_for(ValueStruct) benchmark_for_hash
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
value_struct-0.8.1 | spec/benchmark.rb |
value_struct-0.8.0 | spec/benchmark.rb |