Sha256: 983a7b64bda01ca0c79940ef6c6c24ae4476692b8cea28e72ae8a4dad4285ddb

Contents?: true

Size: 996 Bytes

Versions: 1

Compression:

Stored size: 996 Bytes

Contents

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

require 'benchmark/ips'
require 'time'

$message = {
  "at" => Time.now.utc.iso8601,
  "pid" => Process.pid,
  "app" => File.basename($0),
  "pri" => "info",
  "msg" => "This is my message",
  "user" => {"t" => true, "f" => false, "n" => nil},
  "elapsed" => [55.67, 'ms'],
}

formatters = [
  ['lines', "Lines.dump($message)"],

  ['json/pure', "JSON.dump($message)"],
  ['oj', "Oj.dump($message)"],
  ['yajl', "Yajl.dump($message)"],
  
  ['msgpack', "MessagePack.dump($message)"],
  ['bson', "$message.to_bson"],
  ['tnetstring', "TNetstring.dump($message)"],
]

puts "%-12s %-5s %s" % ['format', 'size', 'output']
puts "-" * 25

Benchmark.ips do |x|
  x.compare!
  formatters.each do |(feature, action)|
    begin
      require feature

      data = eval action
      puts "%-12s %-5d %s" % [feature, data.size, data]

      x.report feature, action
    rescue LoadError
      puts "%-12s could not be loaded" % [feature]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lines-0.9.1 spec/lines_generator_bench.rb