1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#--
# This file is part of Sonic Pi: http://sonic-pi.net
# Full project source: https://github.com/samaaron/sonic-pi
# License: https://github.com/samaaron/sonic-pi/blob/master/LICENSE.md
#
# Copyright 2013, 2014, 2015, 2016 by Sam Aaron (http://sam.aaron.name).
# All rights reserved.
#
# Permission is granted for use, copying, modification, and
# distribution of modified versions of this work as long as this
# notice is included.
#++
# Uncomment this file if you want to run benchmark tests
# requires benchmark/ips gem to be installed
if ENV['RUN_PERF_TESTS']
require_relative '../setup_test.rb'
require_relative "../../lib/sonicpi/osc/osc"
require_relative "../../lib/sonicpi/osc/oscencode"
require_relative "../../lib/sonicpi/osc/oscdecode"
require 'benchmark/ips'
require 'osc-ruby'
require 'fast_osc'
samosc = SonicPi::OSC::OscDecode.new(true)
samoscenc = SonicPi::OSC::OscEncode.new(false)
oscruby = OSC::OSCPacket
address = "/feeooblah"
args = ["beans", 1, 2.0]
msg = OSC::Message.new(address, *args)
test_message = msg.encode
puts "ENCODING TEST"
Benchmark.ips do |bencher|
bencher.report("fast_osc") { FastOsc.encode_single_message(address, args) }
bencher.report("samsosc") { samoscenc.encode_single_message(address, args) }
bencher.report("osc-ruby") { msg.encode }
bencher.compare
end
# puts samosc.decode_single_message(test_message).inspect
puts "DECODING TEST"
Benchmark.ips do |bencher|
bencher.report("fast_osc") { FastOsc.decode_single_message(test_message) }
bencher.report("samsosc") { samosc.decode_single_message(test_message) }
bencher.report("osc-ruby") { oscruby.messages_from_network(test_message) }
bencher.compare
end
end
|