ruff
This commit is contained in:
@@ -66,7 +66,7 @@ class BatchStats:
|
||||
last_batch_duration: float = 0.0
|
||||
last_batch_size: int = 0
|
||||
congestion_score: float = 0.0 # 拥塞评分 (0-1)
|
||||
|
||||
|
||||
# 🔧 新增:缓存统计
|
||||
cache_size: int = 0 # 缓存条目数
|
||||
cache_memory_mb: float = 0.0 # 缓存内存占用(MB)
|
||||
@@ -539,8 +539,7 @@ class AdaptiveBatchScheduler:
|
||||
|
||||
def _set_cache(self, cache_key: str, result: Any) -> None:
|
||||
"""设置缓存(改进版,带大小限制和内存统计)"""
|
||||
import sys
|
||||
|
||||
|
||||
# 🔧 检查缓存大小限制
|
||||
if len(self._result_cache) >= self._cache_max_size:
|
||||
# 首先清理过期条目
|
||||
@@ -549,18 +548,18 @@ class AdaptiveBatchScheduler:
|
||||
k for k, (_, ts) in self._result_cache.items()
|
||||
if current_time - ts >= self.cache_ttl
|
||||
]
|
||||
|
||||
|
||||
for k in expired_keys:
|
||||
# 更新内存统计
|
||||
if k in self._cache_size_map:
|
||||
self._cache_memory_estimate -= self._cache_size_map[k]
|
||||
del self._cache_size_map[k]
|
||||
del self._result_cache[k]
|
||||
|
||||
|
||||
# 如果还是太大,清理最老的条目(LRU)
|
||||
if len(self._result_cache) >= self._cache_max_size:
|
||||
oldest_key = min(
|
||||
self._result_cache.keys(),
|
||||
self._result_cache.keys(),
|
||||
key=lambda k: self._result_cache[k][1]
|
||||
)
|
||||
# 更新内存统计
|
||||
@@ -569,7 +568,7 @@ class AdaptiveBatchScheduler:
|
||||
del self._cache_size_map[oldest_key]
|
||||
del self._result_cache[oldest_key]
|
||||
logger.debug(f"缓存已满,淘汰最老条目: {oldest_key}")
|
||||
|
||||
|
||||
# 🔧 使用准确的内存估算方法
|
||||
try:
|
||||
total_size = estimate_size_smart(cache_key) + estimate_size_smart(result)
|
||||
@@ -580,7 +579,7 @@ class AdaptiveBatchScheduler:
|
||||
# 使用默认值
|
||||
self._cache_size_map[cache_key] = 1024
|
||||
self._cache_memory_estimate += 1024
|
||||
|
||||
|
||||
self._result_cache[cache_key] = (result, time.time())
|
||||
|
||||
async def get_stats(self) -> BatchStats:
|
||||
|
||||
Reference in New Issue
Block a user