/// <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(); }
/// <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); }