recover scripts execution time stat i lost on previus changes. Behing async, this will not add with other time stats giving total frame time, as happens on other simulators. But its a good diag stat.
parent
f84b75b1e0
commit
e464bf5d82
|
@ -1904,14 +1904,17 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the total execution time of all the scripts in the region since the last frame
|
||||
/// (in milliseconds), and clears the value in preparation for the next frame.
|
||||
/// Returns the total execution time of all the scripts in the region since the last call
|
||||
/// (in milliseconds), and clears the value in preparation for the next call.
|
||||
/// </summary>
|
||||
/// <returns>Time in milliseconds</returns>
|
||||
private long GetAndResetScriptExecutionTime()
|
||||
|
||||
// Warning: this is now called from StatsReporter, and can't be shared
|
||||
|
||||
public long GetAndResetScriptExecutionTime()
|
||||
{
|
||||
long ticks = Interlocked.Exchange(ref m_scriptExecutionTime, 0);
|
||||
return (ticks * 1000) / Stopwatch.Frequency;
|
||||
return (ticks * 1000L) / Stopwatch.Frequency;
|
||||
}
|
||||
|
||||
public void AddGroupTarget(SceneObjectGroup grp)
|
||||
|
|
|
@ -412,6 +412,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (m_otherMS < 0)
|
||||
m_otherMS = 0;
|
||||
|
||||
float scriptTimeMS = m_scene.GetAndResetScriptExecutionTime();
|
||||
|
||||
for (int i = 0; i < m_statisticViewerArraySize; i++)
|
||||
{
|
||||
sb[i] = new SimStatsPacket.StatBlock();
|
||||
|
@ -533,7 +535,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
sb[36].StatValue = 0;
|
||||
|
||||
sb[37].StatID = (uint)Stats.ScriptMS;
|
||||
sb[37].StatValue = 0;
|
||||
sb[37].StatValue = scriptTimeMS * perframefactor;
|
||||
|
||||
|
||||
for (int i = 0; i < m_statisticViewerArraySize; i++)
|
||||
|
|
Loading…
Reference in New Issue