Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bsl-language-server.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"listOfIncorrectFirstSymbol": ";|,\\s*\\S+"
},
"Typo": {
"userWordsToIgnore": "Дто,Бенчмаркинг,Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарками,бенчмарка,Бенчмарку,Прогревочных,прогревочных,Десериализованный,Десериализуемые,Сериализуемый,Сериализуемое,Несериализуемое,Запускатель,запускатель,Распарсить,распарсить,Регулярка,Воркер,Десериализатор,Сериализовать,Сериализации,Сериализуемые,Сериализацией,Сериализуется,Сериализацию,сериализацию,сериализуемым,сериализован,Десериализации,Несериализуемых,Валидатор,Валидировать,Алиас"
"userWordsToIgnore": "Дто,Бенчмаркинг,Бенчмарк,бенчмарк,Бенчмарки,бенчмарки,Бенчмарков,бенчмарков,Бенчмарка,бенчмарками,бенчмарка,Бенчмарку,Прогревочных,прогревочных,Десериализованный,Десериализуемые,Сериализуемый,Сериализуемое,Несериализуемое,Запускатель,запускатель,Распарсить,распарсить,Регулярка,Воркер,Десериализатор,Сериализовать,Сериализации,сериализации,Сериализуемые,Сериализацией,Сериализуется,Сериализацию,сериализацию,сериализуемым,сериализован,Десериализации,десериализации,Несериализуемых,Валидатор,Валидировать,Алиас"
},
"LatinAndCyrillicSymbolInWord": false,
"MagicNumber": {
Expand Down
22 changes: 11 additions & 11 deletions docs/ОбработчикиСобытий.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,17 @@
### API

```bsl
// Регистрация обработчика из произвольного объекта через делегат
Конфигурация.ДобавитьОбработчикСобытия(
СобытияБенчмарков.ПередВсеми,
Новый Делегат(Объект, "Инициализация")
);

// Регистрация обработчика из экземпляра класса бенчмарка
Конфигурация.ДобавитьОбработчикСобытия
СобытияБенчмарков.ПослеВсех,
"Завершение"
);
// Регистрация обработчика, расположенного в сценарии бенчмарка
Конфигурация.ДобавитьОбработчикСобытия("ВыполнитьПослеВсех", СобытияБенчмарков.ПослеВсех);

// Регистрация обработчика, расположенного в другом модуле/классе
Конфигурация.ДобавитьОбработчикСобытия("МодульОбработчиков.ВыполнитьПослеВсех", СобытияБенчмарков.ПослеВсех);

// Получение всех обработчиков
Обработчики = Конфигурация.ОбработчикиСобытий();

// Получение обработчиков конкретного события
ОбработчикиПослеВсех = Конфигурация.ОбработчикиСобытия(СобытияБенчмарков.ПослеВсех);

// Удаление обработчиков для события
Конфигурация.УдалитьОбработчикиСобытия(СобытияБенчмарков.ПередКаждым);
Expand Down
26 changes: 13 additions & 13 deletions docs/Параметризация.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

### Аннотации

**Параметры для поля класса, заданные напрямую**
**Общие параметры бенчмарков, заданные напрямую**

Используйте аннотацию `&Параметры` для указания фиксированного набора значений для поля класса. Можно указать значения в одной аннотации или в нескольких.
Используйте аннотацию `&Параметры` для указания значений общего параметра бенчмарков. Можно указать значения в одной аннотации или в нескольких.

```bsl
// Вариант 1: Все значения в одной аннотации
Expand All @@ -21,10 +21,10 @@
Перем АлгоритмХеширования Экспорт;
```

**Параметры для поля класса, полученные из функции**
**Общие параметры бенчмарков, полученные из функции**

Используйте аннотацию `&ИсточникПараметров` для указания экспортной функции, возвращающей коллекцию значений для поля.
Функция может быть определена в классе бенчмарка или в другом модуле/классе.
Используйте аннотацию `&ИсточникПараметров` для указания экспортной функции, возвращающей коллекцию значений для общего параметра бенчмарков.
Функция может быть определена в самом сценарии бенчмарка, любом другом модуле/классе.

```bsl
&ИсточникПараметров("ПолучитьАлгоритмыХеширования") // Экспортная функция внутри класса бенчмарков
Expand All @@ -41,9 +41,9 @@
КонецФункции
```

**Параметры для метода бенчмарка, заданные напрямую**
**Параметры бенчмарка, заданные напрямую**

Используйте аннотацию `&Параметры` для указания фиксированного набора параметров для метода бенчмарка. Каждая аннотация задает новый тестовый случай.
Используйте аннотацию `&Параметры` для указания фиксированного набора параметров бенчмарка. Каждая аннотация задает новый тестовый случай.

```bsl
&Параметры(50, 100) // Парам1=50, Парам2=100
Expand All @@ -54,11 +54,11 @@
КонецПроцедуры
```

**Параметры для метода бенчмарка, полученные из функции**
**Параметры бенчмарка, полученные из функции**

Используйте аннотацию `&ИсточникПараметров` для указания функции, возвращающей коллекцию наборов параметров.
Функция должна возвращать `Массив` или `ТаблицаЗначений`, где каждый элемент соответствует набору параметров.
Функция может быть определена в классе бенчмарка или в другом модуле/классе.
Функция может быть определена в самом сценарии бенчмарка, любом другом модуле/классе.

```bsl
&ИсточникПараметров("ПолучитьПараметрыБенчмарка") // Экспортная функция внутри класса бенчмарков
Expand Down Expand Up @@ -115,22 +115,22 @@

### API

**Добавление параметров для поля класса**
**Добавление общих параметров бенчмарков**

```bsl
Конфигурация
.ДобавитьПараметр("АлгоритмХеширования", "MD5")
.ДобавитьПараметр("АлгоритмХеширования", "SHA256");
```

**Указание источника параметров для поля класса по имени функции**
**Указание источника общих параметров бенчмарков**

```bsl
Конфигурация.ДобавитьИсточникПараметров("АлгоритмХеширования", "ПолучитьАлгоритмыХеширования"); // Экспортная функция внутри класса бенчмарков
Конфигурация.ДобавитьИсточникПараметров("АлгоритмХеширования", "ХранилищеАлгоритмов.ПолучитьАлгоритмыХеширования"); // Экспортная функция класса ХранилищеАлгоритмов
```

**Добавление параметров для метода бенчмарка**
**Добавление параметров бенчмарка**

```bsl
// Набор 1
Expand All @@ -146,7 +146,7 @@
ДескрипторБенчмарка.ДобавитьПараметры(НаборПараметров);
```

**Указание источника параметров для метода бенчмарка по имени функции**
**Указание источника параметров бенчмарка**

```bsl
ДескрипторБенчмарка.ДобавитьИсточникПараметров("ПолучитьПараметрыБенчмарка"); // Экспортная функция внутри класса бенчмарков
Expand Down
1 change: 1 addition & 0 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@
.ЗависитОт("allocs", "0.1.0")
.РазработкаЗависитОт("1testrunner")
.РазработкаЗависитОт("coverage")
.РазработкаЗависитОт("strings")
.ИсполняемыйФайл("src/BenchmarkOneScript/cmd/main.os", "benchos")
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
Тип = Тип("БенчмаркБазовый");

Конфигурация = Новый КонфигурацияБенчмарков(Тип)
.ДобавитьОбработчикСобытия(СобытияБенчмарков.ПередВсеми, Новый Делегат(ЭтотОбъект, "Инициализация"))
.ДобавитьОбработчикСобытия(СобытияБенчмарков.ПослеВсех, Новый Делегат(ЭтотОбъект, "Завершение"))
.ДобавитьОбработчикСобытия(СобытияБенчмарков.ПередКаждым, Новый Делегат(ЭтотОбъект, "ПередЗапуском"))
.ДобавитьОбработчикСобытия(СобытияБенчмарков.ПослеКаждого, Новый Делегат(ЭтотОбъект, "ПослеЗапуска"));
.ДобавитьОбработчикСобытия("Инициализация", СобытияБенчмарков.ПередВсеми)
.ДобавитьОбработчикСобытия("Завершение", СобытияБенчмарков.ПослеВсех)
.ДобавитьОбработчикСобытия("ПередЗапуском", СобытияБенчмарков.ПередКаждым)
.ДобавитьОбработчикСобытия("ПослеЗапуска", СобытияБенчмарков.ПослеКаждого)
// .ДобавитьОбработчикСобытия("ОбщийМодуль.ВыполнитьПослеЗапуска", СобытияБенчмарков.ПослеКаждого)
;

Бенчмаркинг.Запустить(Тип, Конфигурация);
Original file line number Diff line number Diff line change
@@ -1,51 +1,17 @@
#Использовать benchmark
#Использовать "../benchmarks"

// Метод, возвращающий коллекцию множителей
Функция ПолучитьМножители() Экспорт
Множители = Новый Массив();
Множители.Добавить(3);
Множители.Добавить(300);
Возврат Множители;
КонецФункции

// Метод, возвращающий наборы параметров для бенчмарка
Функция ПолучитьПараметрыБенчмарка() Экспорт

Наборы = Новый ТаблицаЗначений();
Наборы.Колонки.Добавить("Число");
Наборы.Колонки.Добавить("ТипАлгоритма");

// Набор 1: Маленькое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 13;
Набор.ТипАлгоритма = "Итеративный";

// Набор 2: Среднее число, рекурсивный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 18;
Набор.ТипАлгоритма = "Рекурсивный";

// Набор 3: Большое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 23;
Набор.ТипАлгоритма = "Итеративный";

Возврат Наборы;

КонецФункции

Тип = Тип("БенчмаркИсточникПараметров");

// Устанавливаем источник параметров для поля Множитель
Конфигурация = Новый КонфигурацияБенчмарков(Тип);
Конфигурация.ОчиститьИсточникиПараметров(); // Очищаем существуюие источники параметров
Конфигурация.ДобавитьИсточникПараметров("Множитель", Новый Делегат(ЭтотОбъект, "ПолучитьМножители"));
// Устанавливаем источник параметров для общего параметра "Множитель"
Конфигурация = Новый КонфигурацияБенчмарков(Тип)
.ОчиститьИсточникиПараметров() // Очищаем существующие источники параметров
.ДобавитьИсточникПараметров("Множитель", "КоллекцияМножителей.Получить");

// Устанавливаем источник параметров для параметров метода бенчмарка
// Устанавливаем источник параметров бенчмарка
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип);
ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркФакториала");
ДескрипторБенчмарка.ОчиститьИсточникиПараметров(); // Очищаем существуюие источники параметров
ДескрипторБенчмарка.ДобавитьИсточникПараметров(Новый Делегат(ЭтотОбъект, "ПолучитьПараметрыБенчмарка"));
ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("БенчмаркФакториала")
.ОчиститьИсточникиПараметров() // Очищаем существующие источники параметров
.ДобавитьИсточникПараметров("ПараметрыБенчмаркаФакториала.Получить");

Бенчмаркинг.Запустить(ДескрипторБенчмарка, Конфигурация);
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#Использовать "../../paramsSources"

&ИсточникПараметров("ПолучитьМножители")
Перем Множитель Экспорт;

Expand All @@ -6,7 +8,7 @@
КонецПроцедуры

&Бенчмарк
&ИсточникПараметров("ПолучитьПараметрыБенчмарка")
&ИсточникПараметров("ПараметрыБенчмаркаФакториала.Получить")
Процедура БенчмаркФакториала(Число, ТипАлгоритма) Экспорт

Если ТипАлгоритма = "Итеративный" Тогда
Expand Down Expand Up @@ -40,30 +42,4 @@
Множители.Добавить(1);
Множители.Добавить(100);
Возврат Множители;
КонецФункции

// Метод, возвращающий наборы параметров для бенчмарка
Функция ПолучитьПараметрыБенчмарка() Экспорт

Наборы = Новый ТаблицаЗначений();
Наборы.Колонки.Добавить("Число");
Наборы.Колонки.Добавить("ТипАлгоритма");

// Набор 1: Маленькое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 10;
Набор.ТипАлгоритма = "Итеративный";

// Набор 2: Среднее число, рекурсивный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 15;
Набор.ТипАлгоритма = "Рекурсивный";

// Набор 3: Большое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 20;
Набор.ТипАлгоритма = "Итеративный";

Возврат Наборы;

КонецФункции
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Функция Получить() Экспорт
Множители = Новый Массив();
Множители.Добавить(3);
Множители.Добавить(300);
Возврат Множители;
КонецФункции
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Функция Получить() Экспорт

Наборы = Новый ТаблицаЗначений();
Наборы.Колонки.Добавить("Число");
Наборы.Колонки.Добавить("ТипАлгоритма");

// Набор 1: Маленькое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 10;
Набор.ТипАлгоритма = "Итеративный";

// Набор 2: Среднее число, рекурсивный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 15;
Набор.ТипАлгоритма = "Рекурсивный";

// Набор 3: Большое число, итеративный алгоритм
Набор = Наборы.Добавить();
Набор.Число = 20;
Набор.ТипАлгоритма = "Итеративный";

Возврат Наборы;

КонецФункции
Loading
Loading