From 31343aa7c3182f4b7e05d7dc01c4c43bd2d43596 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 1 Jun 2012 02:33:44 +0100
Subject: Add optional stat that records milliseconds spent notifying collision
listeners in physics frames
---
OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 14 ++++++++++++++
1 file changed, 14 insertions(+)
(limited to 'OpenSim/Region/Physics')
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
index f1fa38e..0b9ad61 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs
@@ -171,6 +171,11 @@ namespace OpenSim.Region.Physics.OdePlugin
public const string ODENativeGeomCollisionFrameMsStatName = "ODENativeGeomCollisionFrameMS";
///
+ /// Stat name for time spent notifying listeners of collisions
+ ///
+ public const string ODECollisionNotificationFrameMsStatName = "ODECollisionNotificationFrameMS";
+
+ ///
/// Stat name for the milliseconds spent updating avatar position and velocity
///
public const string ODEAvatarUpdateFrameMsStatName = "ODEAvatarUpdateFrameMS";
@@ -2998,6 +3003,9 @@ namespace OpenSim.Region.Physics.OdePlugin
collision_optimized();
+ if (CollectStats)
+ tempTick = Util.EnvironmentTickCount();
+
foreach (PhysicsActor obj in _collisionEventPrim.Values)
{
// m_log.DebugFormat("[PHYSICS]: Assessing {0} {1} for collision events", obj.SOPName, obj.LocalID);
@@ -3024,7 +3032,12 @@ namespace OpenSim.Region.Physics.OdePlugin
m_global_contactcount = 0;
if (CollectStats)
+ {
+ m_stats[ODECollisionNotificationFrameMsStatName]
+ += Util.EnvironmentTickCountSubtract(tempTick);
+
tempTick = Util.EnvironmentTickCount();
+ }
d.WorldQuickStep(world, ODE_STEPSIZE);
@@ -4155,6 +4168,7 @@ namespace OpenSim.Region.Physics.OdePlugin
m_stats[ODENativeStepFrameMsStatName] = 0;
m_stats[ODENativeSpaceCollisionFrameMsStatName] = 0;
m_stats[ODENativeGeomCollisionFrameMsStatName] = 0;
+ m_stats[ODECollisionNotificationFrameMsStatName] = 0;
m_stats[ODEAvatarContactsStatsName] = 0;
m_stats[ODEPrimContactsStatName] = 0;
m_stats[ODEAvatarUpdateFrameMsStatName] = 0;
--
cgit v1.1