Skip to content

Latest commit

 

History

History
127 lines (94 loc) · 10.5 KB

CLI.md

File metadata and controls

127 lines (94 loc) · 10.5 KB

CLI

Команда run

Запускает бенчмарки по указанному файлу, имени класса или директории.

benchos run [OPTIONS] [FILE]

Аргумент [FILE]

Аргумент [FILE] задает источник бенчмарков для запуска. Можно передать один или несколько аргументов.

Поддерживаются следующие варианты:

  • имя файла в текущей директории: МойКласс.os;
  • имя без расширения, если файл МойКласс.os находится в текущей директории: МойКласс;
  • абсолютный или относительный путь к .os-файлу;
  • путь к каталогу с файлами бенчмарков.

Особенности:

  • если передан каталог, CLI ищет в нем файлы *.os, а с опцией -r делает это рекурсивно;
  • если явно передан .os-файл без методов с &Бенчмарк, CLI считает, что в файле в сценарии расположен один алгоритм;
  • если передано несколько .os-файлов без методов с аннотацией &Бенчмарк, каждый из них запускается отдельно, а результаты объединяются в один общий отчет;
  • файл oscript.cfg, расположенный рядом с файлом бенчмарка, используется для подключения его зависимостей и отдельного запуска;
  • при запуске каталога ожидаются обычные файлы бенчмарков с аннотациями.

Опции

Опция Описание По умолчанию Пример
--iterationCount Точное количество временных измерительных итераций 0 --iterationCount 10
--maxRelativeError Включает адаптивные итерации и задаёт целевую относительную погрешность 0.1* --maxRelativeError 0.1
--minAdaptiveIterationCount Включает адаптивные итерации и задаёт минимальное количество измерений 15* --minAdaptiveIterationCount 15
--maxAdaptiveIterationCount Включает адаптивные итерации и задаёт максимальное количество измерений 100* --maxAdaptiveIterationCount 100
--practicalSignificanceThreshold Включает статистическое сравнение и задаёт относительный порог практической значимости 0.15* --practicalSignificanceThreshold 0.15
--significanceLevel Включает статистическое сравнение и задаёт уровень значимости 0.01* --significanceLevel 0.01
--iterationTime Минимальное время выполнения одной итерации (мс) 100 --iterationTime 500
--warmupCount Количество прогревочных итераций 6 --warmupCount 10
--invocationCount Количество вызовов метода за итерацию (0 = авто) 0 --invocationCount 100
--runtime Версии OneScript через запятую (current, stable, dev, x.x.x) --runtime dev,stable
--throughput Стратегия выполнения ПропускнаяСпособность
--coldstart Стратегия выполнения ХолодныйЗапуск
-m, --memory Включить мониторинг использования памяти
-e, --exporters Полный список форматов экспорта результатов через запятую: md, json, html -e json,html
-a, --artifacts Каталог для сохранения результатов .\BenchmarkArtifacts -a path/to/dir
-p, --param Общий параметр бенчмарков в формате <Поле>=<Значение>; поддерживаются Число, Строка, Булево -p Количество=100 -p Количество=500 -p "СтроковойПараметр=test value" -p Флаг=true
-r, --recursive Рекурсивный поиск в поддиректориях
-q, --quiet Отключить обычный консольный вывод. Экспорт и итоговые ошибки сохраняются
--no-progress Отключить вывод хода запуска. Итоговый отчёт, экспорт и итоговые ошибки сохраняются
--method Точные имена методов бенчмарков через запятую --method Первый,Второй --method Третий
--category Точные категории бенчмарков через запятую --category Быстрые,Строки
--settings Файл настроек бенчмарков в формате JSON --settings path/to/settings.json
--debug Порт отладки --debug 2801

Подробный формат файла, допустимые поля и правила приоритета: формат настроек запуска.

* Значение используется при включении соответствующего режима и отсутствии переопределения в --settings или аннотациях бенчмарка.

Примечания

  • Опции --throughput и --coldstart взаимно исключают друг друга.
  • Значение --invocationCount 0 включает автоматический расчёт количества вызовов за итерацию.
  • Опции --warmupCount, --invocationCount, --iterationTime игнорируются при стратегии --coldstart.
  • При --iterationCount число временных измерений фиксировано; без него адаптивный режим действует по умолчанию, а его ограничение задаёт --maxAdaptiveIterationCount.
  • Любая из опций статистического сравнения включает его.
  • Опция -e / --exporters заменяет экспортеры из --settings и аннотаций бенчмарка.
  • Повторяйте -p / --param, чтобы передать несколько общих параметров.
  • Параметры -p / --param имеют наивысший приоритет: они переопределяют одноимённые параметры и источники параметров из --settings и аннотаций бенчмарка, сохраняя параметры с другими именами.
  • Для обычного .os-скрипта без &Бенчмарк используется сгенерированное имя метода Бенчмарк.
  • --no-progress скрывает конфигурацию, прогресс и полный stdout/stderr дочернего процесса, но выводит итоговый отчёт.
  • --quiet скрывает конфигурацию, прогресс, итоговый отчёт и полный stdout/stderr дочернего процесса. При ошибке команда сохраняет ненулевой код возврата и выводит итоговое исключение с доступным кратким описанием.

Переменные среды

BENCHOS_PROCESS_TIMEOUT

Таймаут ожидания завершения процесса бенчмарка в секундах (По умолчанию: 600 секунд).

Пример:

$env:BENCHOS_PROCESS_TIMEOUT=120
benchos run /path/to/МойКласс.os

Примеры

# Запуск по имени класса (файл МойКласс.os должен существовать в текущей директории)
benchos run МойКласс

# Запуск по имени файла в текущей директории
benchos run МойКласс.os

# Запуск по абсолютному пути
benchos run /path/to/МойКласс.os

# Запуск обычного файла без аннотаций &Бенчмарк
benchos run /path/to/Алгоритм.os

# Запуск нескольких plain .os-файлов с одним общим отчетом
benchos run /path/to/Алгоритм1.os /path/to/Алгоритм2.os

# Запуск всех бенчмарков в директории
benchos run /path/to/benchmarks

# Запуск всех бенчмарков в директории, включая вложенные каталоги
benchos run -r /path/to/benchmarks

# Рекурсивный запуск с мониторингом памяти и экспортом в JSON и HTML
benchos run -r -m -e 'json, html' ./benchmarks/

# Холодный запуск с 10 итерациями
benchos run --coldstart --iterationCount 10 /path/to/МойКласс.os

# Адаптивные итерации с целевой погрешностью 5%
benchos run --maxRelativeError 0.05 --minAdaptiveIterationCount 15 --maxAdaptiveIterationCount 100 /path/to/МойКласс.os

# Статистическое сравнение с эталоном
benchos run --practicalSignificanceThreshold 0.15 --significanceLevel 0.01 /path/to/МойКласс.os

# Запуск с общими параметрами бенчмарков
benchos run -p Количество=100 -p Количество=500 -p "СтроковойПараметр=test value" -p Флаг=true /path/to/МойКласс.os