* Added Agent Time, Pending Downloads, and made Agent Updates/Sec actually accurate.
* We're only missing, the script related sim stats counters and the Images time counter and the Pending Uploads counter. The rest of them are actually implemented now.ThreadPoolClientBranch
parent
5958192398
commit
5dd741267e
|
@ -137,7 +137,9 @@ namespace OpenSim.Region.Environment.Modules
|
|||
if (TryGetUserTextureService(client.AgentId, out textureService))
|
||||
{
|
||||
textureService.HandleTextureRequest(client, e);
|
||||
m_scene.AddPendingDownloads(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void ProcessTextureSenders()
|
||||
|
@ -169,6 +171,7 @@ namespace OpenSim.Region.Environment.Modules
|
|||
private void TextureSent(TextureSender sender)
|
||||
{
|
||||
sender.Sending = false;
|
||||
m_scene.AddPendingDownloads(-1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -607,7 +607,6 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_statsReporter.AddPhysicsFPS(physicsFPS);
|
||||
m_statsReporter.SetTimeDilation(m_timedilation);
|
||||
m_statsReporter.AddFPS(1);
|
||||
m_statsReporter.AddAgentUpdates(1);
|
||||
m_statsReporter.AddInPackets(0);
|
||||
m_statsReporter.SetRootAgents(m_innerScene.GetRootAgentCount());
|
||||
m_statsReporter.SetChildAgents(m_innerScene.GetChildAgentCount());
|
||||
|
@ -1766,6 +1765,20 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_statsReporter.AddOutPackets(outPackets);
|
||||
m_statsReporter.AddunAckedBytes(unAckedBytes);
|
||||
}
|
||||
public void AddAgentTime(int ms)
|
||||
{
|
||||
m_statsReporter.addFrameMS(ms);
|
||||
m_statsReporter.addAgentMS(ms);
|
||||
}
|
||||
public void AddAgentUpdates(int count)
|
||||
{
|
||||
m_statsReporter.AddAgentUpdates(count);
|
||||
}
|
||||
|
||||
public void AddPendingDownloads(int count)
|
||||
{
|
||||
m_statsReporter.addPendingDownload(count);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -56,6 +56,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
private float m_sitAvatarHeight = 2.0f;
|
||||
private float m_godlevel = 0;
|
||||
|
||||
private int m_perfMonMS = 0;
|
||||
|
||||
private bool m_setAlwaysRun = false;
|
||||
|
||||
private Quaternion m_bodyRot;
|
||||
|
@ -402,12 +404,16 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
// this.UpdateQuadTreeNode();
|
||||
//this.RefreshQuadObject();
|
||||
//}
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
if (!m_gotAllObjectsInScene)
|
||||
{
|
||||
if (!m_isChildAgent || m_scene.m_sendTasksToChild)
|
||||
{
|
||||
|
||||
m_scene.SendAllSceneObjectsToClient(this);
|
||||
m_gotAllObjectsInScene = true;
|
||||
|
||||
}
|
||||
}
|
||||
if (m_partsUpdateQueue.Count > 0)
|
||||
|
@ -464,6 +470,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
public void forceAvatarMovement(Vector3 position, Quaternion rotation)
|
||||
|
@ -634,6 +642,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
// Must check for standing up even when PhysicsActor is null,
|
||||
// since sitting currently removes avatar from physical scene
|
||||
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
uint flags = agentData.AgentData.ControlFlags;
|
||||
LLQuaternion bodyRotation = agentData.AgentData.BodyRotation;
|
||||
|
||||
|
@ -760,8 +770,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
UpdateMovementAnimations(update_movementflag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
m_scene.EventManager.TriggerOnClientMovement(this);
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1008,6 +1020,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// </summary>
|
||||
protected void UpdateMovementAnimations(bool update_movementflag)
|
||||
{
|
||||
|
||||
|
||||
if (update_movementflag)
|
||||
{
|
||||
// Are we moving?
|
||||
|
@ -1081,6 +1095,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1093,6 +1108,9 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
Console.WriteLine("DEBUG: AddNewMovement: child agent");
|
||||
return;
|
||||
}
|
||||
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
m_rotation = rotation;
|
||||
NewForce newVelocity = new NewForce();
|
||||
Vector3 direc = rotation*vec;
|
||||
|
@ -1134,6 +1152,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
newVelocity.Y = direc.y;
|
||||
newVelocity.Z = direc.z;
|
||||
m_forcesList.Add(newVelocity);
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1190,11 +1210,16 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <param name="remoteClient"></param>
|
||||
public void SendTerseUpdateToClient(IClientAPI remoteClient)
|
||||
{
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
LLVector3 pos = m_pos;
|
||||
LLVector3 vel = Velocity;
|
||||
LLQuaternion rot = new LLQuaternion(m_bodyRot.x, m_bodyRot.y, m_bodyRot.z, m_bodyRot.w);
|
||||
remoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z),
|
||||
new LLVector3(vel.X, vel.Y, vel.Z), rot);
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
m_scene.AddAgentUpdates(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1202,11 +1227,18 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// </summary>
|
||||
public void SendTerseUpdateToAllClients()
|
||||
{
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
m_scene.Broadcast(SendTerseUpdateToClient);
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
|
||||
}
|
||||
|
||||
public void SendCoarseLocations()
|
||||
{
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
List<LLVector3> CoarseLocations = new List<LLVector3>();
|
||||
List<ScenePresence> avatars = m_scene.GetAvatars();
|
||||
for (int i = 0; i < avatars.Count; i++)
|
||||
|
@ -1218,6 +1250,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
|
||||
m_controllingClient.SendCoarseLocationUpdate(CoarseLocations);
|
||||
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
public void CoarseLocationChange()
|
||||
|
@ -1234,6 +1268,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid,
|
||||
LocalId, m_pos, m_appearance.TextureEntry.ToBytes(),
|
||||
m_parentID);
|
||||
m_scene.AddAgentUpdates(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1241,6 +1276,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// </summary>
|
||||
public void SendFullUpdateToAllClients()
|
||||
{
|
||||
m_perfMonMS = System.Environment.TickCount;
|
||||
|
||||
List<ScenePresence> avatars = m_scene.GetScenePresences();
|
||||
foreach (ScenePresence avatar in avatars)
|
||||
{
|
||||
|
@ -1254,6 +1291,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
}
|
||||
m_scene.AddAgentUpdates(avatars.Count);
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1289,6 +1328,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// </summary>
|
||||
public void SendAppearanceToAllOtherAgents()
|
||||
{
|
||||
m_perfMonMS=System.Environment.TickCount;
|
||||
|
||||
m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
|
||||
{
|
||||
if (scenePresence.UUID != UUID)
|
||||
|
@ -1296,6 +1337,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_appearance.SendAppearanceToOtherAgent(scenePresence);
|
||||
}
|
||||
});
|
||||
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
|
||||
}
|
||||
|
||||
public void SendAppearanceToOtherAgent(ScenePresence avatar)
|
||||
|
|
|
@ -57,6 +57,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
ChildAgents = 14,
|
||||
InPacketsPerSecond = 17,
|
||||
OutPacketsPerSecond = 18,
|
||||
PendingDownloads = 19,
|
||||
PendingUploads = 20,
|
||||
UnAckedBytes = 24
|
||||
}
|
||||
|
||||
|
@ -64,9 +66,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
private float m_timeDilation = 0;
|
||||
private int m_fps = 0;
|
||||
private float m_pfps = 0;
|
||||
private float m_agentUpdates = 0;
|
||||
private int m_agentUpdates = 0;
|
||||
private int m_frameMS = 0;
|
||||
private int m_netMS = 0;
|
||||
private int m_agentMS = 0;
|
||||
private int m_physicsMS = 0;
|
||||
private int m_imageMS = 0;
|
||||
private int m_otherMS = 0;
|
||||
|
@ -77,8 +80,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
private int m_outPacketsPerSecond = 0;
|
||||
private int m_activePrim = 0;
|
||||
private int m_unAckedBytes = 0;
|
||||
private int m_pendingDownloads = 0;
|
||||
private int m_pendingUploads = 0;
|
||||
|
||||
|
||||
SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[16];
|
||||
SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[19];
|
||||
SimStatsPacket.RegionBlock rb = new SimStatsPacket.RegionBlock();
|
||||
SimStatsPacket statpack = (SimStatsPacket)PacketPool.Instance.GetPacket(PacketType.SimStats);
|
||||
|
||||
|
@ -91,7 +97,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
public SimStatsReporter(RegionInfo regionData)
|
||||
{
|
||||
ReportingRegion = regionData;
|
||||
for (int i = 0; i<16;i++)
|
||||
for (int i = 0; i<19;i++)
|
||||
{
|
||||
sb[i] = new SimStatsPacket.StatBlock();
|
||||
}
|
||||
|
@ -157,7 +163,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
sb[3].StatValue = (m_agentUpdates);
|
||||
|
||||
//sb[4] = sbb;
|
||||
//sb[4].StatID = (uint) Stats.Agents;
|
||||
sb[4].StatID = (uint) Stats.Agents;
|
||||
sb[4].StatValue = m_rootAgents;
|
||||
|
||||
//sb[5] = sbb;
|
||||
|
@ -188,17 +194,26 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
sb[12].StatValue = m_otherMS;
|
||||
|
||||
//sb[8] = sbb;
|
||||
sb[13].StatID = (uint) Stats.InPacketsPerSecond;
|
||||
sb[13].StatID = (uint)Stats.InPacketsPerSecond;
|
||||
sb[13].StatValue = (m_inPacketsPerSecond);
|
||||
|
||||
//sb[9] = sbb;
|
||||
sb[14].StatID = (uint) Stats.OutPacketsPerSecond;
|
||||
sb[14].StatID = (uint)Stats.OutPacketsPerSecond;
|
||||
sb[14].StatValue = (m_outPacketsPerSecond);
|
||||
|
||||
//sb[10] = sbb;
|
||||
sb[15].StatID = (uint) Stats.UnAckedBytes;
|
||||
sb[15].StatID = (uint)Stats.UnAckedBytes;
|
||||
sb[15].StatValue = m_unAckedBytes;
|
||||
|
||||
sb[16].StatID = (uint)Stats.AgentMS;
|
||||
sb[16].StatValue = m_agentMS;
|
||||
|
||||
sb[17].StatID = (uint)Stats.PendingDownloads;
|
||||
sb[17].StatValue = m_pendingDownloads;
|
||||
|
||||
sb[18].StatID = (uint)Stats.PendingUploads;
|
||||
sb[18].StatValue = m_pendingUploads;
|
||||
|
||||
statpack.Stat = sb;
|
||||
|
||||
if (OnSendStatsResult != null)
|
||||
|
@ -218,6 +233,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_outPacketsPerSecond = 0;
|
||||
m_unAckedBytes = 0;
|
||||
m_frameMS = 0;
|
||||
m_agentMS = 0;
|
||||
m_netMS = 0;
|
||||
m_physicsMS = 0;
|
||||
m_imageMS = 0;
|
||||
|
@ -266,7 +282,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_pfps += frames;
|
||||
}
|
||||
|
||||
public void AddAgentUpdates(float numUpdates)
|
||||
public void AddAgentUpdates(int numUpdates)
|
||||
{
|
||||
m_agentUpdates += numUpdates;
|
||||
}
|
||||
|
@ -294,6 +310,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
m_netMS += ms;
|
||||
}
|
||||
public void addAgentMS(int ms)
|
||||
{
|
||||
m_agentMS += ms;
|
||||
}
|
||||
public void addPhysicsMS(int ms)
|
||||
{
|
||||
m_physicsMS += ms;
|
||||
|
@ -306,5 +326,10 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
m_otherMS += ms;
|
||||
}
|
||||
public void addPendingDownload(int count)
|
||||
{
|
||||
m_pendingDownloads += count;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue