require "benchmark" require "active_support/all" Benchmark.bm do |x| count = 1_000_000 label_size = 20 x.report "check for nil:".rjust(label_size) do count.times { nil && nil.length } end x.report "check respond_to:".rjust(label_size) do count.times { nil.length if nil.respond_to?(:length) } end x.report "rescue:".rjust(label_size) do count.times { nil.length rescue nil } end x.report "active_support try:".rjust(label_size) do count.times { nil.try(:length) } end x.report "safe navigation:".rjust(label_size) do count.times { nil&.length } end end