Rakefile in rubyXL-3.3.0 vs Rakefile in rubyXL-3.3.1

- old
+ new

@@ -65,11 +65,11 @@ require './lib/rubyXL' spreadsheets = Dir.glob(File.join("test", "input", "*.xls?")).sort! spreadsheets.each { |input| - puts "<<<--- Profiling parsing #{input}..." + puts "<<<--- Profiling parsing of #{input}..." doc = nil StackProf.run(:mode => :cpu, :interval => 100, :out => "tmp/stackprof-cpu-parse-#{File.basename(input)}.dump") { doc = RubyXL::Parser.parse(input) } @@ -78,7 +78,36 @@ puts "--->>> Profiling writing of #{output}..." StackProf.run(:mode => :cpu, :interval => 100, :out => "tmp/stackprof-cpu-write-#{File.basename(input)}.dump") { doc.write(output) } + } +end + +desc "Dump profiling data 2" +task :prof do + require 'benchmark' + require 'ruby-prof' + + $:.unshift File.dirname(__FILE__) + '/lib' # Make Ruby aware of load path + require './lib/rubyXL' + + spreadsheets = Dir.glob(File.join("test", "input", "*.xls?")).sort! + + spreadsheets.each { |input| + puts "<<<--- Profiling parsing of #{input}..." + doc = nil + result = RubyProf.profile { + doc = RubyXL::Parser.parse(input) + } + printer = RubyProf::CallStackPrinter.new(result) + File.open("tmp/ruby-prof-parse-#{File.basename(input)}.html", 'w') { |f| printer.print(f, {}) } + + output = File.join("test", "output", File.basename(input)) + puts "--->>> Profiling writing of #{output}..." + result = RubyProf.profile { + doc.write(output) + } + printer = RubyProf::CallStackPrinter.new(result) + File.open("tmp/ruby-prof-write-#{File.basename(input)}.html", 'w') { |f| printer.print(f, {}) } } end