diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-04-07 22:16:58 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2024-04-30 23:10:46 +0200 |
| commit | 996400726927fb952999afbc36db6e2bfba7d44e (patch) | |
| tree | 8258505b69d0a0ad928284880137ff090f05b17e /src/counters | |
| parent | e69e73e589cf4525c96ee7b919032c80ce205244 (diff) | |
| download | rapier-996400726927fb952999afbc36db6e2bfba7d44e.tar.gz rapier-996400726927fb952999afbc36db6e2bfba7d44e.tar.bz2 rapier-996400726927fb952999afbc36db6e2bfba7d44e.zip | |
feat: add some additional perf counters
Diffstat (limited to 'src/counters')
| -rw-r--r-- | src/counters/mod.rs | 12 | ||||
| -rw-r--r-- | src/counters/solver_counters.rs | 17 | ||||
| -rw-r--r-- | src/counters/stages_counters.rs | 12 |
3 files changed, 23 insertions, 18 deletions
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, @@ -202,12 +208,6 @@ measure_method!( 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, broad_phase_time, 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) } } |
