Skip to content

Latest commit

 

History

History
149 lines (115 loc) · 6.44 KB

File metadata and controls

149 lines (115 loc) · 6.44 KB

Среда выполнения

Для сравнения производительности в разных версиях OneScript используется аннотация &ИсполняющаяСреда, позволяющая запускать бенчмарки в нескольких средах одновременно.

Как работает разрешение версий

Каждый запуск бенчмарка выполняется в отдельном процессе oscript. Версия определяется следующим образом:

  1. Путь к файлу - если значение Версия указывает на существующий файл, он используется напрямую.
  2. Алиас или номер версии - иначе фреймворк ищет установленную версию через OVM (OneScript Version Manager).

Порядок определения каталога установки OVM:

  1. Переменная среды OVM_INSTALL_PATH
  2. Переменная среды OSCRIPTBIN (если её родительский каталог называется ovm)
  3. Команда ovm which current

Если ни одна среда не задана, бенчмарк выполняется в той же версии OneScript, которой запущен сам фреймворк (current).

Конфигурирование

Аннотации

  1. Несколько версий в одной аннотации (через запятую):
&ИсполняющаяСреда("stable, dev, 1.9.3")
Процедура ПриСозданииОбъекта()
	// ...
КонецПроцедуры
  1. Несколько аннотаций (по одной на версию):
&ИсполняющаяСреда("stable")
&ИсполняющаяСреда("dev")
Процедура ПриСозданииОбъекта()
	// ...
КонецПроцедуры
  1. С именованными параметрами и произвольным наименованием для отчёта:
&ИсполняющаяСреда(Версия = "1.9.3", Наименование = "Стабильная сборка")
&ИсполняющаяСреда(Версия = "dev", Наименование = "Ночная сборка")
Процедура ПриСозданииОбъекта()
	// ...
КонецПроцедуры
  1. С указанием эталонной среды:
&ИсполняющаяСреда(
    Версия = "stable",
    Наименование = "Стабильная сборка",
    ЭтоЭталон = Истина
)
Процедура ПриСозданииОбъекта()
	// ...
КонецПроцедуры
  1. Путь к произвольному исполняемому файлу:
&ИсполняющаяСреда(Версия = "/path/to/oscript.exe", Наименование = "Моя сборка")
Процедура ПриСозданииОбъекта()
	// ...
КонецПроцедуры

API

  1. Простое указание версий:
Конфигурация
    .ДобавитьИсполняющуюСреду("stable")
    .ДобавитьИсполняющуюСреду("dev")
    .ДобавитьИсполняющуюСреду("1.9.3");
  1. С наименованием для отчёта:
Конфигурация
    .ДобавитьИсполняющуюСреду("1.9.3", "Стабильная сборка")
    .ДобавитьИсполняющуюСреду("dev", "Ночная сборка");
  1. С эталонной средой:
Конфигурация.ДобавитьИсполняющуюСреду("stable", "Стабильная сборка", Истина);
  1. Путь к исполняемому файлу:
Конфигурация.ДобавитьИсполняющуюСреду("/path/to/oscript.exe", "Моя сборка");

CLI

Опция --runtime принимает одно или несколько значений через запятую:

benchos run --runtime='stable,dev,1.9.3' [FILE]

CLI-опция --runtime имеет приоритет над аннотациями &ИсполняющаяСреда в коде.

Подробнее см. в разделе CLI.

Эталонная среда

Среда, помеченная как эталонная, используется базой для расчёта колонок Ratio и RatioSD в отчёте. Она отображается со значением Yes в колонке Baseline.

  • Допускается только одна эталонная среда на бенчмарк.
  • Если эталон не задан, колонки Ratio/RatioSD не выводятся.

Подробнее см. в разделе Эталоны.

Пример

Перем ДвоичныеДанные;

&ИсполняющаяСреда("dev")
&ИсполняющаяСреда(
    Версия = "stable",
    Наименование = "Стабильная",
    ЭтоЭталон = Истина
)
Процедура ПриСозданииОбъекта()
КонецПроцедуры

&ПередВсеми
Процедура Инициализация(Контекст) Экспорт
	ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки("Много данных");
КонецПроцедуры

&Бенчмарк
Процедура SHA256() Экспорт
	ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256);
	ХешированиеДанных.Добавить(ДвоичныеДанные);
	ХешСумма = ХешированиеДанных.ХешСумма;
КонецПроцедуры

Результаты выполнения

Method Runtime Baseline Mean StdErr StdDev Ratio RatioSD Op/s
SHA256 2.0.0-rc.8+608 No 9.048 us 93.81 ns 363.3 ns 0.67 0.03 110,523
SHA256 Стабильная (1.9.3.15) Yes 13.561 us 70.97 ns 274.9 ns 1.00 0.00 73,742