Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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));
                }
            }
        }