Beispiel #1
0
            public PerfStatisticData ExtractOldData(DateTime _NewestData)
            {
                PerfStatisticData oldData = new PerfStatisticData();

                foreach (var currPerfPageItem in m_PerfPageItems)
                {
                    int lastIndex = currPerfPageItem.Value.m_PageAccessItems.FindLastIndex((_Value) => { return(_Value.m_StartRequestDateTime < _NewestData); });
                    if (lastIndex != -1)
                    {
                        PerfPageItem newPerfPageItem = new PerfPageItem();
                        newPerfPageItem.m_PageName        = currPerfPageItem.Value.m_PageName;
                        newPerfPageItem.m_PageAccessItems = currPerfPageItem.Value.m_PageAccessItems.GetRange(0, lastIndex + 1);
                        currPerfPageItem.Value.m_PageAccessItems.RemoveRange(0, lastIndex + 1);
                        oldData.m_PerfPageItems.Add(currPerfPageItem.Key, newPerfPageItem);
                    }
                }
                foreach (var currUserAccess in m_UserAccesses)
                {
                    int lastIndex = currUserAccess.Value.FindLastIndex((_Value) => { return(_Value.m_StartRequestDateTime < _NewestData); });
                    if (lastIndex != -1)
                    {
                        List <PageAccessItem> newPerfAccessItems = currUserAccess.Value.GetRange(0, lastIndex + 1);
                        currUserAccess.Value.RemoveRange(0, lastIndex + 1);
                        oldData.m_UserAccesses.Add(currUserAccess.Key, newPerfAccessItems);
                    }
                }


                return(oldData);
            }
Beispiel #2
0
        public static float GetAverageExecutionTime(string _PageName)
        {
            AssertInitialize();
            PerfPageItem perfPageItem = null;

            lock (sm_PerfStatsDataLock)
            {
                if (sm_PerfStatsData.m_PerfPageItems.TryGetValue(_PageName, out perfPageItem) == true)
                {
                    return(perfPageItem.GetAverageExecutionTime());
                }
            }
            return(-1.0f);
        }
Beispiel #3
0
        public static void AddStatistics(HttpContext _ContextObject, int _PreRenderTimeMs, int _RenderTimeMs, int _PageSize)
        {
            return;//DISABLED FOR NOW

            AssertInitialize();
            string clientIP = _ContextObject.Request.UserHostAddress;

            if (clientIP == null)
            {
                clientIP = "NULL";
            }
            PageAccessItem newPageAccess = new PageAccessItem();

            newPageAccess.m_FullUrl              = _ContextObject.Request.RawUrl;
            newPageAccess.m_ReferrerUrl          = (_ContextObject.Request.UrlReferrer != null ? _ContextObject.Request.UrlReferrer.ToString() : "");
            newPageAccess.m_StartRequestDateTime = _ContextObject.Timestamp.ToUniversalTime();
            newPageAccess.m_ExecutionTimeMs      = (int)(DateTime.UtcNow - newPageAccess.m_StartRequestDateTime).TotalMilliseconds;
            newPageAccess.m_PreRenderTimeMs      = _PreRenderTimeMs;
            newPageAccess.m_RenderTimeMs         = _RenderTimeMs;
            newPageAccess.m_PageSize             = _PageSize;
            newPageAccess.m_ClientIP             = clientIP;
            if (_ContextObject.Response.IsRequestBeingRedirected == true)
            {
                newPageAccess.m_RedirectedTo = _ContextObject.Response.RedirectLocation;
            }
            else
            {
                newPageAccess.m_RedirectedTo = "";
            }

            lock (sm_PerfStatsDataLock)
            {
                {//Add to m_PerfPageItems
                    string       pageName     = _ContextObject.Request.Url.AbsolutePath;
                    PerfPageItem perfPageItem = null;
                    if (sm_PerfStatsData.m_PerfPageItems.TryGetValue(pageName, out perfPageItem) == false)
                    {
                        perfPageItem            = new PerfPageItem();
                        perfPageItem.m_PageName = pageName;
                        sm_PerfStatsData.m_PerfPageItems.Add(pageName, perfPageItem);
                    }
                    perfPageItem.m_PageAccessItems.Add(newPageAccess);
                }
                {//Add to m_UserAccesses
                    List <PageAccessItem> pageAccessItems = null;
                    if (sm_PerfStatsData.m_UserAccesses.TryGetValue(clientIP, out pageAccessItems) == false)
                    {
                        pageAccessItems = new List <PageAccessItem>();
                        sm_PerfStatsData.m_UserAccesses.Add(clientIP, pageAccessItems);
                    }
                    if (pageAccessItems != null)
                    {
                        pageAccessItems.Add(newPageAccess);
                    }
                    else
                    {
                        Logger.ConsoleWriteLine("pageAccessItems was null!!!", ConsoleColor.Red);
                    }
                }
            }
            LogExecutionTimes();
        }