chore: add calc timing logs

This commit is contained in:
2026-06-04 19:46:51 +08:00
parent 53b9f48f7d
commit 7d78cc578c
2 changed files with 29 additions and 1 deletions
+18 -1
View File
@@ -1,10 +1,27 @@
import logging
import time
from typing import Any
from api.core.Auth import AlterState
from core.basic.character import createCharacter
logger = logging.getLogger('dcalc.calc')
def calculate(state: AlterState, config: dict[str, Any] | None) -> dict[str, Any]:
started_at = time.perf_counter()
safe_config = config or {}
character = createCharacter(state.alter, state.equVersion)
return character.calc(safe_config)
created_at = time.perf_counter()
result = character.calc(safe_config)
finished_at = time.perf_counter()
logger.info(
'calc completed alter=%s equVersion=%s create_ms=%.2f calc_ms=%.2f total_ms=%.2f',
state.alter,
state.equVersion,
(created_at - started_at) * 1000,
(finished_at - created_at) * 1000,
(finished_at - started_at) * 1000,
)
return result
+11
View File
@@ -1,3 +1,5 @@
import logging
from api.core.Auth import AlterState
from services.calc_service import calculate
@@ -9,3 +11,12 @@ def test_calculate_returns_character_calc_result(minimal_calc_config):
assert isinstance(result, dict)
assert set(['uuid', 'skills', 'info', 'suits', 'buffer']).issubset(result)
def test_calculate_logs_timing(caplog, minimal_calc_config):
state = AlterState('GF.swordman_male.weapon_master', 'token', {}, '0', 0)
with caplog.at_level(logging.INFO, logger='dcalc.calc'):
calculate(state, minimal_calc_config)
assert any('calc completed alter=GF.swordman_male.weapon_master' in record.message for record in caplog.records)