Sha256: a668d4acca9aa2eaa6a80a9746ec08576cb4ce5639df045d8951c7214ec24caf

Contents?: true

Size: 1.32 KB

Versions: 11

Compression:

Stored size: 1.32 KB

Contents

require 'memory_profiler'
require 'benchmark/ips'

$: << File.expand_path('../../lib', __FILE__)


puts
puts "Memory stats for requiring mime/types/columnar"
result = MemoryProfiler.report do
  require 'mime/types/columnar'
end

puts "Total allocated: #{result.total_allocated_memsize} bytes (#{result.total_allocated} objects)"
puts "Total retained:  #{result.total_retained_memsize} bytes (#{result.total_retained} objects)"

puts
puts "Memory stats for requiring mini_mime"
result = MemoryProfiler.report do
  require 'mini_mime'
end

puts "Total allocated: #{result.total_allocated_memsize} bytes (#{result.total_allocated} objects)"
puts "Total retained:  #{result.total_retained_memsize} bytes (#{result.total_retained} objects)"


Benchmark.ips do |bm|
  bm.report 'cached content_type lookup MiniMime' do
    MiniMime.lookup_by_filename("a.txt").content_type
  end

  bm.report 'content_type lookup Mime::Types' do
    MIME::Types.type_for("a.txt")[0].content_type
  end
end

module MiniMime
  class Db
    class RandomAccessDb
      alias_method :lookup, :lookup_uncached
    end
  end
end

Benchmark.ips do |bm|
  bm.report 'uncached content_type lookup MiniMime' do
    MiniMime.lookup_by_filename("a.txt").content_type
  end

  bm.report 'content_type lookup Mime::Types' do
    MIME::Types.type_for("a.txt")[0].content_type
  end
end

Version data entries

11 entries across 9 versions & 2 rubygems

Version Path
tdiary-5.0.9 vendor/bundle/gems/mini_mime-1.0.0/bench/bench.rb
tdiary-5.0.8 vendor/bundle/gems/mini_mime-1.0.0/bench/bench.rb
tdiary-5.0.8 vendor/bundle/gems/tdiary-5.0.7/vendor/bundle/gems/mini_mime-1.0.0/bench/bench.rb
tdiary-5.0.8 vendor/bundle/ruby/2.5.0/gems/mini_mime-1.0.0/bench/bench.rb
tdiary-5.0.7 vendor/bundle/gems/mini_mime-1.0.0/bench/bench.rb
mini_mime-1.0.0 bench/bench.rb
tdiary-5.0.6 vendor/bundle/gems/mini_mime-0.1.4/bench/bench.rb
mini_mime-0.1.4 bench/bench.rb
mini_mime-0.1.3 bench/bench.rb
mini_mime-0.1.2 bench/bench.rb
mini_mime-0.1.1 bench/bench.rb