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
|
# frozen_string_literal: true
require "benchmark"
require 'lib/yard'
def format_args_regex(object)
if object.signature
object.signature[/#{Regexp.quote object.name.to_s}\s*(.*)/, 1]
else
""
end
end
def format_args_parameters(object)
if !object.parameters.empty?
args = object.parameters.map {|n, v| v ? "#{n} = #{v}" : n.to_s }.join(", ")
"(#{args})"
else
""
end
end
YARD::Registry.load
$object = YARD::Registry.at('YARD::Generators::Base#G')
log.puts "regex: " + format_args_regex($object)
log.puts "params: " + format_args_parameters($object)
log.puts
TIMES = 100_000
Benchmark.bmbm do |x|
x.report("regex") { TIMES.times { format_args_regex($object) } }
x.report("parameters") { TIMES.times { format_args_parameters($object) } }
end
=begin LAST RUN Jun 23 2008
regex: (generator, opts = {})
params: (generator, opts = {})
Rehearsal ----------------------------------------------
regex 1.270000 0.020000 1.290000 ( 1.294558)
parameters 0.690000 0.000000 0.690000 ( 0.693324)
------------------------------------- total: 1.980000sec
user system total real
regex 1.260000 0.010000 1.270000 ( 1.268214)
parameters 0.670000 0.000000 0.670000 ( 0.679114)
=end
|