public BlockStoreStats(BlockRepository blockRepository, BlockStoreCache blockStoreCache) { this.repository = blockRepository; this.cache = blockStoreCache; this.lastRepositorySnapshot = this.repository?.PerformanceCounter.Snapshot(); this.lastCacheSnapshot = this.cache?.PerformanceCounter.Snapshot(); }
public BlockStoreCachePerformanceSnapshot Snapshot() { #if !(PORTABLE || NETCORE) Thread.MemoryBarrier(); #endif var snap = new BlockStoreCachePerformanceSnapshot(this.CacheHitCount, this.CacheMissCount, this.CacheRemoveCount, this.CacheSetCount) { Start = this.Start, Taken = DateTime.UtcNow }; return(snap); }
public void Log() { StringBuilder performanceLogBuilder = new StringBuilder(); if (this.repository != null) { var snapshot = this.repository.PerformanceCounter.Snapshot(); performanceLogBuilder.AppendLine((snapshot - this.lastRepositorySnapshot).ToString()); this.lastRepositorySnapshot = snapshot; } if (this.cache != null) { var snapshot = this.cache.PerformanceCounter.Snapshot(); performanceLogBuilder.AppendLine((snapshot - this.lastCacheSnapshot).ToString()); this.lastCacheSnapshot = snapshot; } Logs.BlockStore.LogInformation(performanceLogBuilder.ToString()); }