performance

  • method argument

def hello(foo: nil, bar: nil)
end
10_000.times { hello(foo: 1, bar: 2) }

# Runtime => 10.354 ms
def hello(options = {})
  foo, bar = options[:foo], options[:bar]
end
10_000.times { hello(foo: 1, bar: 2) }
# Runtime => 5.064 ms
  • obj.method VS obj attr_reader

    ```ruby class Foo def initialize(val) @val = val end

    def val @val end end

object = Foo.new("bar") 100_000.times { object.val }

Runtime => 9.284 ms

```ruby
class Foo
  def initialize(val)
    @val = val
  end

  attr_reader :val
end

object = Foo.new("bar")
100_000.times { object.val }
# Runtime => 6.966 ms
  • Array rand

  • each VS while

  • Block

Last updated