more profile cleanups

This commit is contained in:
Tobi Lutke
2025-07-29 20:15:22 -04:00
parent 14e70cf5ba
commit 544b512e7b
+18 -44
View File
@@ -11,58 +11,32 @@ Liquid::Template.error_mode = ARGV.first.to_sym if ARGV.first
profiler = ThemeRunner.new
profiler.run_all # warmup
puts
puts "writing to #{output_dir}/cpu.profile"
StackProf.run(mode: :cpu, raw: true, out: "#{output_dir}/cpu.profile") do
100.times do
profiler.run_all
[:cpu, :object].each do |mode|
puts
puts "Profiling in #{mode} mode..."
puts "writing to #{output_dir}/#{mode}.profile:"
puts
StackProf.run(mode: mode, raw: true, out: "#{output_dir}/#{mode}.profile") do
200.times do
profiler.run_all
end
end
end
puts "writing to #{output_dir}/object.profile"
StackProf.run(mode: :object, raw: true, out: "#{output_dir}/object.profile") do
100.times do
profiler.run_all
result = StackProf.run(mode: mode) do
100.times do
profiler.run_all
end
end
StackProf::Report.new(result).print_text(false, 30)
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 "files in #{output_dir}:"
Dir.glob("#{output_dir}/*").each do |file|
puts " #{file}"
end
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"