test(program-optimizer): грубый перф-порог 1с вместо 100мс (flaky на CI-раннере)
All checks were successful
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m33s
CI / openapi-codegen-check (pull_request) Successful in 2m33s
CI / backend-tests (pull_request) Successful in 14m51s
All checks were successful
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m33s
CI / openapi-codegen-check (pull_request) Successful in 2m33s
CI / backend-tests (pull_request) Successful in 14m51s
Run 3917: shared-раннер занял 199 мс на гриде, который локально идёт 15 мс. Порог теперь ловит деградацию на порядки, а не загрузку раннера.
This commit is contained in:
parent
71c7e6b5b5
commit
9e1dca7885
1 changed files with 10 additions and 4 deletions
|
|
@ -6,7 +6,7 @@
|
||||||
• кламп floors_grid по max_floors_allowed (10 → [5, 9]);
|
• кламп floors_grid по max_floors_allowed (10 → [5, 9]);
|
||||||
• ЕДИНАЯ откалиброванная цена во все комбо (price_per_sqm_used одинакова);
|
• ЕДИНАЯ откалиброванная цена во все комбо (price_per_sqm_used одинакова);
|
||||||
• сбой одного комбо не валит грид;
|
• сбой одного комбо не валит грид;
|
||||||
• полный вызов быстрый (<100 мс).
|
• полный вызов быстрый (грубый порог 1 с — защита от деградации на порядки).
|
||||||
|
|
||||||
Детерминированно, без LLM / БД.
|
Детерминированно, без LLM / БД.
|
||||||
"""
|
"""
|
||||||
|
|
@ -220,11 +220,17 @@ def test_result_carries_caveat_and_metadata() -> None:
|
||||||
# ── производительность ────────────────────────────────────────────────────────
|
# ── производительность ────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
def test_full_grid_under_100ms() -> None:
|
def test_full_grid_fast_enough_for_sync_request() -> None:
|
||||||
"""Полный вызов (12 комбо) укладывается в <100 мс (синхронно в теле запроса)."""
|
"""Полный грид достаточно быстр для синхронного вызова в теле запроса.
|
||||||
|
|
||||||
|
Локально 12 комбо ≈ 15 мс; порог 1000 мс намеренно грубый — ловим
|
||||||
|
деградацию НА ПОРЯДКИ (случайный I/O, БД, квадратичный взрыв), а не
|
||||||
|
миллисекунды: на нагруженном shared CI-раннере тот же вызов занимал
|
||||||
|
199 мс и валил жёсткий порог 100 мс (flaky, run 3917).
|
||||||
|
"""
|
||||||
kwargs = _big_profitable_kwargs()
|
kwargs = _big_profitable_kwargs()
|
||||||
start = time.perf_counter()
|
start = time.perf_counter()
|
||||||
result = optimize_program(**kwargs)
|
result = optimize_program(**kwargs)
|
||||||
elapsed_ms = (time.perf_counter() - start) * 1000.0
|
elapsed_ms = (time.perf_counter() - start) * 1000.0
|
||||||
assert result is not None
|
assert result is not None
|
||||||
assert elapsed_ms < 100.0, f"optimize_program took {elapsed_ms:.1f} ms (>100 ms)"
|
assert elapsed_ms < 1000.0, f"optimize_program took {elapsed_ms:.1f} ms (>1000 ms)"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue