Exemple #1
0
        /// <summary>
        /// Populates the drop down list with an ordered list of cache type names.
        /// The selected item is used for the button to clear all the cache of
        /// that type.
        /// </summary>
        protected void PopulateDdlCacheTypes()
        {
            ddlCacheTypes.Items.Clear();
            ddlCacheTypes.Items.Add(new ListItem("All Cached Items", "all"));

            var cacheStats = RockCache.GetAllStatistics();

            foreach (CacheItemStatistics cacheItemStat in cacheStats.OrderBy(s => s.Name))
            {
                ddlCacheTypes.Items.Add(new ListItem(cacheItemStat.Name, cacheItemStat.Name));
            }
        }
        private string GetCacheInfo()
        {
            StringBuilder sb = new StringBuilder();

            var cacheStats = RockCache.GetAllStatistics();
            foreach ( CacheItemStatistics cacheItemStat in cacheStats.OrderBy( s => s.Name ) )
            {
                foreach ( CacheHandleStatistics cacheHandleStat in cacheItemStat.HandleStats )
                {
                    var stats = new List<string>();
                    cacheHandleStat.Stats.ForEach( s => stats.Add( string.Format( "{0}: {1:N0}", s.CounterType.ConvertToString(), s.Count ) ) );
                    sb.AppendFormat( "<p><strong>{0}:</strong><br/>{1}</p>{2}", cacheItemStat.Name, stats.AsDelimited( ", " ), Environment.NewLine );
                }
            }

            return sb.ToString();
        }
Exemple #3
0
        /// <summary>
        /// Computes and displays a summary of cache statistics.
        /// </summary>
        protected void PopulateCacheStatistics()
        {
            long hits   = 0;
            long misses = 0;
            long adds   = 0;
            long gets   = 0;
            long clears = 0;

            var cacheItemStatistics = new List <CacheItemStatistics>();

            if (ddlCacheTypes.SelectedValue == "all")
            {
                cacheItemStatistics = RockCache.GetAllStatistics().OrderBy(s => s.Name).ToList();
            }
            else
            {
                cacheItemStatistics.Add(RockCache.GetStatisticsForType(ddlCacheTypes.SelectedValue));
            }

            foreach (CacheItemStatistics cacheItemStat in cacheItemStatistics)
            {
                foreach (CacheHandleStatistics cacheHandleStat in cacheItemStat.HandleStats)
                {
                    hits   += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "hits").Select(s => s.Count).FirstOrDefault();
                    misses += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "misses").Select(s => s.Count).FirstOrDefault();
                    adds   += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "add calls").Select(s => s.Count).FirstOrDefault();
                    adds   += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "put calls").Select(s => s.Count).FirstOrDefault();
                    gets   += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "get calls").Select(s => s.Count).FirstOrDefault();
                    clears += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "clear calls").Select(s => s.Count).FirstOrDefault();
                    clears += cacheHandleStat.Stats.Where(s => s.CounterType.ConvertToString().ToLower() == "clear region calls").Select(s => s.Count).FirstOrDefault();
                }
            }

            string htmlText = "<tr><td>Hits</td><td>{0:N0}</td><tr><td>Misses</td><td>{1:N0}</td></tr><tr><td>Adds</td><td>{2:N0}</td></tr><tr><td>Gets</td><td>{3:N0}</td></tr><tr><td>Clears</td><td>{4:N0}</td></tr>";

            lCacheStatistics.Text = string.Format(htmlText, hits, misses, adds, gets, clears);
        }