private ListStats CalcFor(List <double> list)
        {
            ListStats stats = new ListStats(0.0, 0.0, 0.0, 0.0);

            if (list.Count > 0)
            {
                stats.ListMin  = list.Min();
                stats.ListMax  = list.Max();
                stats.ListLast = list.Last();
                stats.ListAvg  = list.Average();
                return(stats);
            }
            else
            {
                return(stats);
            }
        }
示例#2
0
        public CacheStats Since(CacheStats prior)
        {
            if (prior == null)
            {
                return(this);
            }

            return(new CacheStats(prior.LatestGlobalStats.LatestOperationStamp, LatestGlobalStats,
                                  IsList, ListStats.Since(prior.ListStats),
                                  Hits - prior.Hits,
                                  NonHits - prior.NonHits,
                                  NonHitsOverCapacity - prior.NonHitsOverCapacity,
                                  Failures - prior.Failures,
                                  CumulativeTime - prior.CumulativeTime,
                                  CumulativeFailureTime - prior.CumulativeFailureTime,
                                  CumulativeCost - prior.CumulativeCost,
                                  ForeverNonHits, // The "forever" values don't get subtracted because calculation of average time requires them to never drop to zero
                                  ForeverCumulativeTime));
        }
示例#3
0
 public CacheStats WithListCacheSkip(int resultItems, TimeSpan queryTime)
 {
     return(withCacheNonHit(ListStats.WithNewResult(resultItems, true), queryTime, true));
 }
示例#4
0
 public CacheStats WithListCacheMiss(int resultItems, TimeSpan queryTime, bool isOverCapacity)
 {
     return(withCacheNonHit(ListStats.WithNewResult(resultItems, false), queryTime, isOverCapacity));
 }
示例#5
0
 public CacheStats WithListCacheHit(int resultItems)
 {
     return(withCacheHit(ListStats.WithNewResult(resultItems, false)));
 }
示例#6
0
 public CacheStats WithSingleCacheNonHit(TimeSpan queryTime, bool isOverCapacity)
 {
     return(withCacheNonHit(ListStats.WithNewResult(), queryTime, isOverCapacity));
 }
示例#7
0
 public CacheStats WithSingleCacheHit()
 {
     return(withCacheHit(ListStats.WithNewResult()));
 }