public GlassModelCounter(Glass.Mapper.Context context, string identifier, int threshold) { _log = context.DependencyResolver.GetLog(); _identifier = identifier; _threshold = threshold; _enabled = context.Config.Debug.Enabled; RequestCount = -1; CacheCount = -1; if (_enabled) { _requestedCountBefore = ConstructionMonitorTask.GetCounter(ConstructionMonitorTask.CalledKey); _cacheMissCountBefore = ConstructionMonitorTask.GetCounter(ConstructionMonitorTask.CacheMissKey); } }
public void Dispose() { if (_enabled) { int endRequestCount = ConstructionMonitorTask.GetCounter(ConstructionMonitorTask.CalledKey); int endCacheMissCount = ConstructionMonitorTask.GetCounter(ConstructionMonitorTask.CacheMissKey); int diffRequest = endRequestCount - _requestedCountBefore; int diffCacheMiss = endCacheMissCount - _cacheMissCountBefore; RequestCount = diffRequest; CacheCount = diffRequest - diffCacheMiss; if (diffRequest > _threshold || diffCacheMiss > _threshold) { _log.Debug("Glass Counter {0} - Requests: {1} Cache Misses: {2}".Formatted(_identifier, diffRequest, diffCacheMiss)); } } }