diff --git a/lib/cyberarm_engine.rb b/lib/cyberarm_engine.rb index 7562651..e74902f 100644 --- a/lib/cyberarm_engine.rb +++ b/lib/cyberarm_engine.rb @@ -68,3 +68,7 @@ require_relative "cyberarm_engine/game_state" require_relative "cyberarm_engine/ui/gui_state" require_relative "cyberarm_engine/builtin/intro_state" + +at_exit do + StackProf.results("./_prof.txt") if RUBY_ENGINE != "mruby" && defined?(StackProf) +end diff --git a/lib/cyberarm_engine/ui/elements/container.rb b/lib/cyberarm_engine/ui/elements/container.rb index 5635ed3..95d878c 100644 --- a/lib/cyberarm_engine/ui/elements/container.rb +++ b/lib/cyberarm_engine/ui/elements/container.rb @@ -224,7 +224,7 @@ module CyberarmEngine update_child_element_visibity(child) end - puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{object_id.to_s(16)}'s #{@children.count} children" + puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{object_id.to_s(16)}'s #{@children.count} children" if is_root? update_background diff --git a/lib/cyberarm_engine/ui/gui_state.rb b/lib/cyberarm_engine/ui/gui_state.rb index 5bc9074..96d9adc 100644 --- a/lib/cyberarm_engine/ui/gui_state.rb +++ b/lib/cyberarm_engine/ui/gui_state.rb @@ -66,7 +66,9 @@ module CyberarmEngine if @pending_recalculate_request Stats.frame.start_timing(:gui_recalculate) + StackProf.start(mode: :wall) if RUBY_ENGINE != "mruby" && defined?(StackProf) @root_container.recalculate + StackProf.stop if RUBY_ENGINE != "mruby" && defined?(StackProf) @pending_recalculate_request = false