Для сравнения производительности в разных версиях OneScript используется аннотация &ИсполняющаяСреда, позволяющая запускать бенчмарки в нескольких средах одновременно.
Каждый запуск бенчмарка выполняется в отдельном процессе oscript. Версия определяется следующим образом:
- Путь к файлу - если значение
Версияуказывает на существующий файл, он используется напрямую. - Алиас или номер версии - иначе фреймворк ищет установленную версию через OVM (OneScript Version Manager).
Порядок определения каталога установки OVM:
- Переменная среды
OVM_INSTALL_PATH - Переменная среды
OSCRIPTBIN(если её родительский каталог называетсяovm) - Команда
ovm which current
Если ни одна среда не задана, бенчмарк выполняется в той же версии OneScript, которой запущен сам фреймворк (current).
- Несколько версий в одной аннотации (через запятую):
&ИсполняющаяСреда("stable, dev, 1.9.3")
Процедура ПриСозданииОбъекта()
// ...
КонецПроцедуры- Несколько аннотаций (по одной на версию):
&ИсполняющаяСреда("stable")
&ИсполняющаяСреда("dev")
Процедура ПриСозданииОбъекта()
// ...
КонецПроцедуры- С именованными параметрами и произвольным наименованием для отчёта:
&ИсполняющаяСреда(Версия = "1.9.3", Наименование = "Стабильная сборка")
&ИсполняющаяСреда(Версия = "dev", Наименование = "Ночная сборка")
Процедура ПриСозданииОбъекта()
// ...
КонецПроцедуры- С указанием эталонной среды:
&ИсполняющаяСреда(
Версия = "stable",
Наименование = "Стабильная сборка",
ЭтоЭталон = Истина
)
Процедура ПриСозданииОбъекта()
// ...
КонецПроцедуры- Путь к произвольному исполняемому файлу:
&ИсполняющаяСреда(Версия = "/path/to/oscript.exe", Наименование = "Моя сборка")
Процедура ПриСозданииОбъекта()
// ...
КонецПроцедуры- Простое указание версий:
Конфигурация
.ДобавитьИсполняющуюСреду("stable")
.ДобавитьИсполняющуюСреду("dev")
.ДобавитьИсполняющуюСреду("1.9.3");- С наименованием для отчёта:
Конфигурация
.ДобавитьИсполняющуюСреду("1.9.3", "Стабильная сборка")
.ДобавитьИсполняющуюСреду("dev", "Ночная сборка");- С эталонной средой:
Конфигурация.ДобавитьИсполняющуюСреду("stable", "Стабильная сборка", Истина);- Путь к исполняемому файлу:
Конфигурация.ДобавитьИсполняющуюСреду("/path/to/oscript.exe", "Моя сборка");Опция --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 |