mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-18 02:10:41 -07:00
more profile cleanups
This commit is contained in:
+18
-44
@@ -11,58 +11,32 @@ Liquid::Template.error_mode = ARGV.first.to_sym if ARGV.first
|
|||||||
profiler = ThemeRunner.new
|
profiler = ThemeRunner.new
|
||||||
profiler.run_all # warmup
|
profiler.run_all # warmup
|
||||||
|
|
||||||
puts
|
[:cpu, :object].each do |mode|
|
||||||
puts "writing to #{output_dir}/cpu.profile"
|
puts
|
||||||
StackProf.run(mode: :cpu, raw: true, out: "#{output_dir}/cpu.profile") do
|
puts "Profiling in #{mode} mode..."
|
||||||
100.times do
|
puts "writing to #{output_dir}/#{mode}.profile:"
|
||||||
profiler.run_all
|
puts
|
||||||
|
StackProf.run(mode: mode, raw: true, out: "#{output_dir}/#{mode}.profile") do
|
||||||
|
200.times do
|
||||||
|
profiler.run_all
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
puts "writing to #{output_dir}/object.profile"
|
result = StackProf.run(mode: mode) do
|
||||||
StackProf.run(mode: :object, raw: true, out: "#{output_dir}/object.profile") do
|
100.times do
|
||||||
100.times do
|
profiler.run_all
|
||||||
profiler.run_all
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
StackProf::Report.new(result).print_text(false, 30)
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "running cpu profile"
|
|
||||||
results = StackProf.run(mode: :cpu) do
|
|
||||||
100.times do
|
|
||||||
profiler.run_all
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open("#{output_dir}/cpu.graph.dot", 'w+') do |f|
|
|
||||||
puts("Writing cpu graph to #{File.join(output_dir, "cpu.graph.dot")}")
|
|
||||||
StackProf::Report.new(results).print_graphviz({}, f)
|
|
||||||
end
|
|
||||||
|
|
||||||
StackProf::Report.new(results).print_text(false, 20)
|
|
||||||
puts("Writing cpu profile to #{File.join(output_dir, "cpu.profile")}")
|
|
||||||
File.write(File.join(output_dir, "cpu.profile"), Marshal.dump(results))
|
|
||||||
|
|
||||||
puts
|
|
||||||
puts "Profiling in object mode..."
|
|
||||||
results = StackProf.run(mode: :object) do
|
|
||||||
100.times do
|
|
||||||
profiler.run_all
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open("#{output_dir}/object.graph.dot", 'w+') do |f|
|
|
||||||
puts("Writing object graph to #{File.join(output_dir, "object.graph.dot")}")
|
|
||||||
StackProf::Report.new(results).print_graphviz({}, f)
|
|
||||||
end
|
|
||||||
|
|
||||||
StackProf::Report.new(results).print_text(false, 20)
|
|
||||||
puts("Writing object profile to #{File.join(output_dir, "object.profile")}")
|
|
||||||
File.write(File.join(output_dir, "object.profile"), Marshal.dump(results))
|
|
||||||
puts
|
|
||||||
puts
|
puts
|
||||||
puts "files in #{output_dir}:"
|
puts "files in #{output_dir}:"
|
||||||
Dir.glob("#{output_dir}/*").each do |file|
|
Dir.glob("#{output_dir}/*").each do |file|
|
||||||
puts " #{file}"
|
puts " #{file}"
|
||||||
end
|
end
|
||||||
puts "Recommended:"
|
puts "Recommended:"
|
||||||
puts "stackprof --d3-flamegraph #{output_dir}/cpu.profile > #{output_dir}/flame.html"
|
puts " stackprof --d3-flamegraph #{output_dir}/cpu.profile > #{output_dir}/flame.html"
|
||||||
|
puts " stackprof --method #{output_dir}/cpu.profile"
|
||||||
|
puts " etc"
|
||||||
|
|||||||
Reference in New Issue
Block a user