From 996400726927fb952999afbc36db6e2bfba7d44e Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Sun, 7 Apr 2024 22:16:58 +0200 Subject: feat: add some additional perf counters --- src/counters/mod.rs | 12 ++++++------ src/counters/solver_counters.rs | 17 ++++++----------- src/counters/stages_counters.rs | 12 +++++++++++- 3 files changed, 23 insertions(+), 18 deletions(-) (limited to 'src/counters') diff --git a/src/counters/mod.rs b/src/counters/mod.rs index 324696f..e707025 100644 --- a/src/counters/mod.rs +++ b/src/counters/mod.rs @@ -182,6 +182,12 @@ measure_method!( stages.solver_time ); measure_method!(ccd_started, ccd_completed, ccd_time, stages.ccd_time); +measure_method!( + query_pipeline_update_started, + query_pipeline_update_completed, + query_pipeline_update_time, + stages.query_pipeline_time +); measure_method!( assembly_started, @@ -201,12 +207,6 @@ measure_method!( velocity_update_time, solver.velocity_update_time ); -measure_method!( - position_resolution_started, - position_resolution_completed, - position_resolution_time, - solver.position_resolution_time -); measure_method!( broad_phase_started, broad_phase_completed, diff --git a/src/counters/solver_counters.rs b/src/counters/solver_counters.rs index babcf41..aced5f3 100644 --- a/src/counters/solver_counters.rs +++ b/src/counters/solver_counters.rs @@ -14,10 +14,8 @@ pub struct SolverCounters { pub velocity_assembly_time: Timer, /// Time spent for the update of the velocity of the bodies. pub velocity_update_time: Timer, - /// Time spent for the assembly of all the position constraints. - pub position_assembly_time: Timer, - /// Time spent for the update of the position of the bodies. - pub position_resolution_time: Timer, + /// Time spent to write force back to user-accessible data. + pub velocity_writeback_time: Timer, } impl SolverCounters { @@ -29,8 +27,7 @@ impl SolverCounters { velocity_assembly_time: Timer::new(), velocity_resolution_time: Timer::new(), velocity_update_time: Timer::new(), - position_assembly_time: Timer::new(), - position_resolution_time: Timer::new(), + velocity_writeback_time: Timer::new(), } } @@ -41,8 +38,7 @@ impl SolverCounters { self.velocity_resolution_time.reset(); self.velocity_assembly_time.reset(); self.velocity_update_time.reset(); - self.position_assembly_time.reset(); - self.position_resolution_time.reset(); + self.velocity_writeback_time.reset(); } } @@ -57,11 +53,10 @@ impl Display for SolverCounters { self.velocity_resolution_time )?; writeln!(f, "Velocity update time: {}", self.velocity_update_time)?; - writeln!(f, "Position assembly time: {}", self.position_assembly_time)?; writeln!( f, - "Position resolution time: {}", - self.position_resolution_time + "Velocity writeback time: {}", + self.velocity_writeback_time ) } } diff --git a/src/counters/stages_counters.rs b/src/counters/stages_counters.rs index b61adb7..7e3198a 100644 --- a/src/counters/stages_counters.rs +++ b/src/counters/stages_counters.rs @@ -14,6 +14,10 @@ pub struct StagesCounters { pub solver_time: Timer, /// Total time spent for CCD and CCD resolution. pub ccd_time: Timer, + /// Total time spent updating the query pipeline (if provided to `PhysicsPipeline::step`). + pub query_pipeline_time: Timer, + /// Total time spent propagating user changes. + pub user_changes: Timer, } impl StagesCounters { @@ -25,6 +29,8 @@ impl StagesCounters { island_construction_time: Timer::new(), solver_time: Timer::new(), ccd_time: Timer::new(), + query_pipeline_time: Timer::new(), + user_changes: Timer::new(), } } @@ -35,6 +41,8 @@ impl StagesCounters { self.island_construction_time.reset(); self.solver_time.reset(); self.ccd_time.reset(); + self.query_pipeline_time.reset(); + self.user_changes.reset(); } } @@ -52,6 +60,8 @@ impl Display for StagesCounters { self.island_construction_time )?; writeln!(f, "Solver time: {}", self.solver_time)?; - writeln!(f, "CCD time: {}", self.ccd_time) + writeln!(f, "CCD time: {}", self.ccd_time)?; + writeln!(f, "Query pipeline time: {}", self.query_pipeline_time)?; + writeln!(f, "User changes time: {}", self.user_changes) } } -- cgit