Sha256: c2f50fc934079b2934fd389d04fe3dcaa97b1f234d41b0fc8f65319d07d3a79e

Contents?: true

Size: 674 Bytes

Versions: 1

Compression:

Stored size: 674 Bytes

Contents

# frozen_string_literal: true

require 'memoizer'
require_relative 'base'

class MemoizerCache

  include Memoizer

  def randomize
    rand(1..99)
  end

  memoize :randomize

end

klass_a = LiteMemoizeInstanceCache.new
klass_b = LiteMemoizeKlassCache.new
klass_c = LiteMemoizeMixinCache.new
klass_d = LiteMemoizeAliasCache.new
klass_z = MemoizerCache.new

Benchmark.ips do |x|
  x.report('LM.instance') do
    klass_a.randomize
  end

  x.report('LM.klass') do
    klass_b.randomize
  end

  x.report('LM.mixin') do
    klass_c.randomize
  end

  x.report('LM.alias') do
    klass_d.randomize
  end

  x.report('Memoizer') do
    klass_z.randomize
  end

  x.compare!
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lite-memoize-1.0.1 benchmarks/memoizer.rb