- C1: trace только на повторе 0 при числе повторов > 1 (lib/trace.ts shouldTrace) в scroll и scroll-coauthor: admin-контроль, control4x и PERF_S2_REPEATS=1 больше не теряют единственную запись (traced=1). - I1: масштаб 2 - PERF_LOAD_TIMEOUT_MS=40 мин и PERF_TEST_TIMEOUT_MS=90 мин, если не заданы. - I2: шаг aggregate падает при сбое perfkit.aggregate/копирования и если summary.json не создан; тесты run-all (perf/tests/test_run_all.py). - M2: после modals_profiling останавливается preview :8081. - README, design.md: решения раунда. Refs #202 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 lines
883 B
TypeScript
12 lines
883 B
TypeScript
/**
|
|
* Трассировать ли замер (scroll, scroll-coauthor). Trace снимается только на повторе 0 и только если повторов > 1:
|
|
* трассированная запись помечается traced=1 и aggregate её исключает (O-9), поэтому при единственном повторе
|
|
* (admin-контроль, control4x, PERF_S2_REPEATS=1) группа осталась бы без данных. Смена фильтра свода не трассируется.
|
|
* PERF_TRACE=0 отключает trace полностью.
|
|
*/
|
|
export interface TraceOpts { repeat: number; repeats: number; filter?: boolean }
|
|
|
|
export function shouldTrace(o: TraceOpts, env: Record<string, string | undefined> = process.env): boolean {
|
|
return o.repeat === 0 && o.repeats > 1 && !o.filter && env.PERF_TRACE !== '0';
|
|
}
|