updateStats 更新统计信息
(result *CompressResult, cacheHit bool)
| 569 | |
| 570 | // updateStats 更新统计信息 |
| 571 | func (s *DefaultCompressionService) updateStats(result *CompressResult, cacheHit bool) { |
| 572 | s.mu.Lock() |
| 573 | defer s.mu.Unlock() |
| 574 | |
| 575 | s.stats.TotalCompressions++ |
| 576 | s.stats.TotalDuration += result.Duration |
| 577 | s.stats.TotalTokensSaved += result.TokensSaved |
| 578 | |
| 579 | if cacheHit { |
| 580 | s.stats.CacheHits++ |
| 581 | } else { |
| 582 | s.stats.CacheMisses++ |
| 583 | } |
| 584 | |
| 585 | // 更新平均压缩率 |
| 586 | if s.stats.TotalCompressions > 0 { |
| 587 | totalRatio := s.stats.AverageRatio*float64(s.stats.TotalCompressions-1) + result.CompressionRatio |
| 588 | s.stats.AverageRatio = totalRatio / float64(s.stats.TotalCompressions) |
| 589 | } |
| 590 | } |
| 591 | |
| 592 | // CompressionCache 压缩缓存 |
| 593 | type CompressionCache struct { |
no outgoing calls
no test coverage detected