* 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
OpenSim/Region/Environment
|
@ -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