From a568f06b7faea807149205d0e47454e4883e4836 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Thu, 6 Aug 2015 09:54:20 +0300 Subject: When scripts are sleeping, don't count that as execution time Sleeping doesn't use the CPU. --- .../Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared/Instance') diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 042c30c..c6512ba 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -207,6 +207,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance private EventWaitHandle m_coopSleepHandle; + private Stopwatch executionTimer = new Stopwatch(); + public void ClearQueue() { m_TimerQueued = false; @@ -278,7 +280,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance foreach (string api in am.GetApis()) { m_Apis[api] = am.CreateApi(api); - m_Apis[api].Initialize(Engine, Part, ScriptTask, m_coopSleepHandle); + m_Apis[api].Initialize(Engine, Part, ScriptTask, m_coopSleepHandle, executionTimer); } try @@ -753,8 +755,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance if (Suspended) return 0; - Stopwatch timer = new Stopwatch(); - timer.Start(); + executionTimer.Restart(); try { @@ -762,9 +763,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance } finally { - timer.Stop(); - ExecutionTime.AddSample(timer); - Part.ParentGroup.Scene.AddScriptExecutionTime(timer.ElapsedTicks); + executionTimer.Stop(); + ExecutionTime.AddSample(executionTimer); + Part.ParentGroup.Scene.AddScriptExecutionTime(executionTimer.ElapsedTicks); } } } -- cgit v1.1