Files
mOrpheus/modules/performance.py
T
Nighthawk 1cafbec4bc Major Rewrite
A rewrite incorporating developments from the last few days.
2025-03-25 01:52:12 -04:00

35 lines
1.1 KiB
Python

# modules/performance.py
import time
from modules.logging import logger
class PerformanceMonitor:
def __init__(self, report_interval=60):
self.start_time = time.time()
self.token_count = 0
self.audio_chunks = 0
self.api_calls = 0
self.errors = 0
self.last_report_time = time.time()
self.report_interval = report_interval
def add_tokens(self, count=1):
self.token_count += count
def add_audio_chunk(self):
self.audio_chunks += 1
def add_api_call(self):
self.api_calls += 1
def add_error(self):
self.errors += 1
def report(self, force=False):
now = time.time()
if force or (now - self.last_report_time) >= self.report_interval:
elapsed = now - self.start_time
tokens_per_sec = self.token_count / elapsed if elapsed > 0 else 0
logger.info("Performance: %.1f tokens/sec | %d API calls | %d errors | %d audio chunks",
tokens_per_sec, self.api_calls, self.errors, self.audio_chunks)
self.last_report_time = now