From 8fb3523ef74f87995a4c791212e7dbefe8134a61 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sun, 21 Sep 2008 20:29:06 +0000 Subject: * Start recording asset request times after a cache miss. This is very primtive at the moment - only the last time is kept for some classes of request * This can be seen as "Latest asset request time after cache miss" in show stats on the region console --- OpenSim/Framework/Communications/Cache/AssetCache.cs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'OpenSim/Framework/Communications') diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 0112198..9c73587 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs @@ -252,7 +252,7 @@ namespace OpenSim.Framework.Communications.Cache else { // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); - + NewAssetRequest req = new NewAssetRequest(assetId, callback); AssetRequestsList requestList; @@ -268,8 +268,11 @@ namespace OpenSim.Framework.Communications.Cache { // m_log.DebugFormat("[ASSET CACHE]: Adding request for {0} {1}", isTexture ? "texture" : "asset", assetId); requestList = new AssetRequestsList(assetId); - RequestLists.Add(assetId, requestList); - requestList.Requests.Add(req); + requestList.TimeRequested = DateTime.Now; + requestList.Requests.Add(req); + + RequestLists.Add(assetId, requestList); + m_assetServer.RequestAsset(assetId, isTexture); } } @@ -446,6 +449,9 @@ namespace OpenSim.Framework.Communications.Cache if (reqList != null) { + if (StatsManager.SimExtraStats != null) + StatsManager.SimExtraStats.AddAssetRequestTimeAfterCacheMiss(DateTime.Now - reqList.TimeRequested); + foreach (NewAssetRequest req in reqList.Requests) { // Xantor 20080526 are we really calling all the callbacks if multiple queued for 1 request? -- Yes, checked @@ -479,6 +485,9 @@ namespace OpenSim.Framework.Communications.Cache if (reqList != null) { + if (StatsManager.SimExtraStats != null) + StatsManager.SimExtraStats.AddAssetRequestTimeAfterCacheMiss(DateTime.Now - reqList.TimeRequested); + foreach (NewAssetRequest req in reqList.Requests) { req.Callback(assetID, null); @@ -670,6 +679,11 @@ namespace OpenSim.Framework.Communications.Cache { public UUID AssetID; public List Requests = new List(); + + /// + /// Record the time that this request was first made. + /// + public DateTime TimeRequested; public AssetRequestsList(UUID assetID) { -- cgit v1.1