Sha256: d6384f95c8ef8cd13ae495f6ff1e7c723af1478c362bddfd25737b12ad745aa1

Contents?: true

Size: 1020 Bytes

Versions: 7

Compression:

Stored size: 1020 Bytes

Contents

#!/usr/bin/env ruby

$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
ASSET_PATH = File.expand_path('../../test/assets', __FILE__)

require 'rubygems'
require 'mochilo'
require 'json'
require 'benchmark'
require 'msgpack'
require 'pp'

def benchmark(filename, repeat = 1000)
  stream = IO.read("#{ASSET_PATH}/#{filename}")
  stream_len = stream.size

  object = JSON.parse(stream)
  bytes = object.to_msgpack

  stream = nil

  def do_bench(label, repeat, &block)
    t = Benchmark::Tms.new

    repeat.times do
      t = t + Benchmark.measure(nil, &block)
    end

    puts "-> #{label} x#{repeat}"
    puts " Total:", t
    puts " Avg:", t / repeat
    puts ""
  end

  puts "# #{filename} (#{stream_len / 1024}kb)"
  do_bench('Mochilo (pack)', repeat) { Mochilo.pack(object) }
  do_bench('Msgpack (pack)', repeat) { MessagePack.pack(object) }

  do_bench('Mochilo (unpack)', repeat) { Mochilo.unpack(bytes) }
  do_bench('Msgpack (unpack)', repeat) { MessagePack.unpack(bytes) }
end

benchmark('pulls.json')

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mochilo-2.1 script/benchmark
mochilo-1.3.0 script/benchmark
mochilo-1.2.1 script/benchmark
mochilo-1.2 script/benchmark
mochilo-2.0 script/benchmark
mochilo-1.1 script/benchmark
mochilo-1.0 script/benchmark