Add ability to log warn if a frame takes longer than twice the expected time. Currently commented out.
parent
68ce06f40f
commit
92837c4f89
|
@ -190,7 +190,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
private int backupMS;
|
private int backupMS;
|
||||||
private int terrainMS;
|
private int terrainMS;
|
||||||
private int landMS;
|
private int landMS;
|
||||||
private int lastCompletedFrame;
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tick at which the last frame was processed.
|
||||||
|
/// </summary>
|
||||||
|
private int m_lastFrameTick;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Signals whether temporary objects are currently being cleaned up. Needed because this is launched
|
/// Signals whether temporary objects are currently being cleaned up. Needed because this is launched
|
||||||
|
@ -467,7 +471,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public int MonitorBackupTime { get { return backupMS; } }
|
public int MonitorBackupTime { get { return backupMS; } }
|
||||||
public int MonitorTerrainTime { get { return terrainMS; } }
|
public int MonitorTerrainTime { get { return terrainMS; } }
|
||||||
public int MonitorLandTime { get { return landMS; } }
|
public int MonitorLandTime { get { return landMS; } }
|
||||||
public int MonitorLastFrameTick { get { return lastCompletedFrame; } }
|
public int MonitorLastFrameTick { get { return m_lastFrameTick; } }
|
||||||
|
|
||||||
public UpdatePrioritizationSchemes UpdatePrioritizationScheme { get { return m_priorityScheme; } }
|
public UpdatePrioritizationSchemes UpdatePrioritizationScheme { get { return m_priorityScheme; } }
|
||||||
public bool IsReprioritizationEnabled { get { return m_reprioritizationEnabled; } }
|
public bool IsReprioritizationEnabled { get { return m_reprioritizationEnabled; } }
|
||||||
|
@ -1210,6 +1214,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
float physicsFPS = 0f;
|
float physicsFPS = 0f;
|
||||||
int tmpPhysicsMS, tmpPhysicsMS2, tmpAgentMS, tmpTempOnRezMS, evMS, backMS, terMS;
|
int tmpPhysicsMS, tmpPhysicsMS2, tmpAgentMS, tmpTempOnRezMS, evMS, backMS, terMS;
|
||||||
|
int previousFrameTick;
|
||||||
int maintc;
|
int maintc;
|
||||||
List<Vector3> coarseLocations;
|
List<Vector3> coarseLocations;
|
||||||
List<UUID> avatarUUIDs;
|
List<UUID> avatarUUIDs;
|
||||||
|
@ -1313,10 +1318,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// UpdateLand();
|
// UpdateLand();
|
||||||
// landMS = Util.EnvironmentTickCountSubtract(ldMS);
|
// landMS = Util.EnvironmentTickCountSubtract(ldMS);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
frameMS = Util.EnvironmentTickCountSubtract(maintc);
|
frameMS = Util.EnvironmentTickCountSubtract(maintc);
|
||||||
otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS;
|
otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS;
|
||||||
lastCompletedFrame = Util.EnvironmentTickCount();
|
|
||||||
|
|
||||||
// if (Frame%m_update_avatars == 0)
|
// if (Frame%m_update_avatars == 0)
|
||||||
// UpdateInWorldTime();
|
// UpdateInWorldTime();
|
||||||
|
@ -1386,16 +1390,19 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// Tell the watchdog that this thread is still alive
|
// Tell the watchdog that this thread is still alive
|
||||||
Watchdog.UpdateThread();
|
Watchdog.UpdateThread();
|
||||||
|
|
||||||
maintc = Util.EnvironmentTickCountSubtract(maintc);
|
// previousFrameTick = m_lastFrameTick;
|
||||||
|
m_lastFrameTick = Util.EnvironmentTickCount();
|
||||||
|
maintc = Util.EnvironmentTickCountSubtract(m_lastFrameTick, maintc);
|
||||||
maintc = (int)(MinFrameTime * 1000) - maintc;
|
maintc = (int)(MinFrameTime * 1000) - maintc;
|
||||||
|
|
||||||
if (maintc > 0)
|
if (maintc > 0)
|
||||||
Thread.Sleep(maintc);
|
Thread.Sleep(maintc);
|
||||||
|
|
||||||
// if (frameMS > (int)(MinFrameTime * 1000))
|
// Optionally warn if a frame takes double the amount of time that it should.
|
||||||
|
// if (Util.EnvironmentTickCountSubtract(m_lastFrameTick, previousFrameTick) > (int)(MinFrameTime * 1000 * 2))
|
||||||
// m_log.WarnFormat(
|
// m_log.WarnFormat(
|
||||||
// "[SCENE]: Frame took {0} ms (desired max {1} ms) in {2}",
|
// "[SCENE]: Frame took {0} ms (desired max {1} ms) in {2}",
|
||||||
// frameMS,
|
// Util.EnvironmentTickCountSubtract(m_lastFrameTick, previousFrameTick),
|
||||||
// MinFrameTime * 1000,
|
// MinFrameTime * 1000,
|
||||||
// RegionInfo.RegionName);
|
// RegionInfo.RegionName);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue