Запускает бенчмарки по указанному файлу, имени класса или директории.
benchos run [OPTIONS] [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 дочернего процесса. При ошибке команда сохраняет ненулевой код возврата и выводит итоговое исключение с доступным кратким описанием.
Таймаут ожидания завершения процесса бенчмарка в секундах (По умолчанию: 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