From 5dd741267eae5c7dfcd20372ba1b43904dd4503a Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Wed, 16 Jan 2008 05:48:40 +0000 Subject: * 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. --- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 44 +++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 2e2bb62..30ad4a5 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -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); } /// @@ -1008,6 +1020,8 @@ namespace OpenSim.Region.Environment.Scenes /// protected void UpdateMovementAnimations(bool update_movementflag) { + + if (update_movementflag) { // Are we moving? @@ -1081,6 +1095,7 @@ namespace OpenSim.Region.Environment.Scenes } } } + } /// @@ -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 /// 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); } /// @@ -1202,11 +1227,18 @@ namespace OpenSim.Region.Environment.Scenes /// 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 CoarseLocations = new List(); List 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); } /// @@ -1241,6 +1276,8 @@ namespace OpenSim.Region.Environment.Scenes /// public void SendFullUpdateToAllClients() { + m_perfMonMS = System.Environment.TickCount; + List 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); } /// @@ -1289,6 +1328,8 @@ namespace OpenSim.Region.Environment.Scenes /// 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) -- cgit v1.1