class Add attr_reader :result, :is_negative def initialize(a, b) @result = a + b @is_negative = @result < 0 end end def add(a,b) result = a + b { result: result, is_negative: (result < 0) } end require 'benchmark/ips' Benchmark.ips do |x| x.report("obj return") { foo = Add.new(1, 2); foo.result; foo.is_negative } x.report("hash return") { foo = add(1, 2); foo[:result]; foo[:is_negative] } x.compare! end