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
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#Использовать benchmark
#Использовать "../benchmarks"

Тип = Тип("БенчмаркБазовый");

Конфигурация = Новый КонфигурацияБенчмарков(Тип);
Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Мин);
Конфигурация.ДобавитьКолонку(КолонкиОтчетаБенчмарков.Макс);

Бенчмаркинг.Запустить(Тип, Конфигурация);
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
&КолонкаМин
&КолонкаМакс
Процедура ПриСозданииОбъекта()
КонецПроцедуры

&Бенчмарк
Процедура Бенчмарк() Экспорт
Приостановить(10);
КонецПроцедуры
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//
// Пример:
// &Бенчмарк
// Процедруа МойБенчмарк() Экспорт
// Процедура МойБенчмарк() Экспорт
// // Тестируемый код
// КонецПроцедуры
&Аннотация("Бенчмарк")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// Пример:
// &Бенчмарк
// &Категория("Имя категории")
// Процедруа Бенчмарк() Экспорт
// Процедура Бенчмарк() Экспорт
// // ...
// КонецПроцедуры
&Аннотация("Категория")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Пример:
// &КоличествоВызововЗаИтерацию(100)
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("КоличествоВызововЗаИтерацию")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
//
// Пример:
// &КоличествоИтераций(20)
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("КоличествоИтераций")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
//
// Пример:
// &КоличествоПрогревочныхИтераций(10)
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("КоличествоПрогревочныхИтераций")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Добавляет в отчет колонку с максимальным временем выполнения метода за все итерации.
//
// Применяется только к методу ПриСозданииОбъекта.
//
// Пример:
// &КолонкаМакс
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("КолонкаМакс")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Добавляет в отчет колонку с минимальным временем выполнения метода за все итерации.
//
// Применяется только к методу ПриСозданииОбъекта.
//
// Пример:
// &КолонкаМин
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("КолонкаМин")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
//
// Пример:
// &МинимальноеВремяИтерации(1000)
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("МинимальноеВремяИтерации")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Пример:
// &МинимальноеКоличествоВызововЗаИтерацию(10)
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("МинимальноеКоличествоВызововЗаИтерацию")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Пример:
// &МониторингПамяти
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("МониторингПамяти")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
//
// &Параметры(100, 10)
// &Параметры(200, 20)
// Процедруа Бенчмарк(П1, П2)
// Процедура Бенчмарк(П1, П2)
// // ...
// КонецПроцедуры
&Аннотация("Параметры")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// // * Конфигурация - КонфигурацияБенчмарков
// // * ДескрипторыБенчмарков - КоллекцияДескрипторовБенчмарков
// &ПередВсеми
// Процедруа ПередВсеми(Контекст) Экспорт
// Процедура ПередВсеми(Контекст) Экспорт
// // Подготовка данных
// КонецПроцедуры
&Аннотация("ПередВсеми")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// // * ДескрипторБенчмарка - ДескрипторБенчмарка
// // * ПараметрыМетода - Массив из Произвольный
// &ПередКаждым
// Процедруа ПередКаждым(Контекст) Экспорт
// Процедура ПередКаждым(Контекст) Экспорт
// // ...
// КонецПроцедуры
&Аннотация("ПередКаждым")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// // * Отчет - ОтчетБенчмарков
// // * СредаОкружения - СредаОкруженияБенчмарков
// &ПослеВсех
// Процедруа ПослеВсех(Контекст) Экспорт
// Процедура ПослеВсех(Контекст) Экспорт
// // Очистка данных
// КонецПроцедуры
&Аннотация("ПослеВсех")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// // * Замеры - ТаблицаЗначений - см. ЗапускательБенчмарков.НоваяТаблицаЗамеров
// // * Статистика - СтатистикаБенчмарка
// &ПослеКаждого
// Процедруа ПослеКаждого(Контекст) Экспорт
// Процедура ПослеКаждого(Контекст) Экспорт
// // ...
// КонецПроцедуры
&Аннотация("ПослеКаждого")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Пример:
// &СортировкаОтБыстрыхКМедленным
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("СортировкаОтБыстрыхКМедленным")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Пример:
// &СортировкаОтМедленныхКБыстрым
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("СортировкаОтМедленныхКБыстрым")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Пример:
// &СортировкаПоМетоду
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("СортировкаПоМетоду")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Пример:
// &СтратегияПропускнаяСпособность
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("СтратегияПропускнаяСпособность")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Пример:
// &СтратегияХолодныйЗапуск
// Процедруа ПриСозданииОбъекта()
// Процедура ПриСозданииОбъекта()
// // ...
// КонецПроцедуры
&Аннотация("СтратегияХолодныйЗапуск")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// Пример:
// &Бенчмарк
// &Эталон
// Процедруа Бенчмарк() Экспорт
// Процедура Бенчмарк() Экспорт
// // ...
// КонецПроцедуры
&Аннотация("Эталон")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#Использовать delegate

// Создает экземпляр колонки
//
// Возвращаемое значение:
// КолонкаОтчетаБенчмарков
Функция Создать() Экспорт

Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.Макс);
Колонка.Заголовок = "Max";
Колонка.Описание = "Максимум";
Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда;
Колонка.ЗначениеДелегат = Делегаты.Создать(ЭтотОбъект, "Значение");

Возврат Колонка;

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

// Возвращает значение колонки
//
// Параметры:
// СтрокаРезультата - СтрокаТаблицыЗначений - см. ЗапускательБенчмарков.НоваяТаблицаРезультатовЗапусков
// Колонка - КолонкаОтчетаБенчмарков
//
// Возвращаемое значение:
// Произвольный
Функция Значение(СтрокаРезультата, Колонка) Экспорт // BSLLS:UnusedParameters-off

Возврат СтрокаРезультата.Статистика.Макс;

КонецФункции
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#Использовать delegate

// Создает экземпляр колонки
//
// Возвращаемое значение:
// КолонкаОтчетаБенчмарков
Функция Создать() Экспорт

Колонка = Новый КолонкаОтчетаБенчмарков(КолонкиОтчетаБенчмарков.Мин);
Колонка.Заголовок = "Min";
Колонка.Описание = "Минимум";
Колонка.ЕдиницаИзмерения = ЕдиницыИзмеренийБенчмарков.Наносекунда;
Колонка.ЗначениеДелегат = Делегаты.Создать(ЭтотОбъект, "Значение");

Возврат Колонка;

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

// Возвращает значение колонки
//
// Параметры:
// СтрокаРезультата - СтрокаТаблицыЗначений - см. ЗапускательБенчмарков.НоваяТаблицаРезультатовЗапусков
// Колонка - КолонкаОтчетаБенчмарков
//
// Возвращаемое значение:
// Произвольный
Функция Значение(СтрокаРезультата, Колонка) Экспорт // BSLLS:UnusedParameters-off

Возврат СтрокаРезультата.Статистика.Мин;

КонецФункции
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
Перем _ТребуетсяМониторингПамяти; // Булево
Перем _Параметры; // Массив из ПараметрБенчмарка
Перем _Обработчики; // Соответствие
Перем _Колонки; // Массив из Строка - см. КолонкиОтчетаБенчмарков

// Конфигурация бенчмарков
//
Expand All @@ -26,6 +27,7 @@

_Параметры = Новый Массив();
_Обработчики = Новый Соответствие();
_Колонки = Новый Массив();
_ТребуетсяМониторингПамяти = Ложь;

УстановитьСтратегию(СтратегииЗапускаБенчмарка.ПропускнаяСпособность);
Expand Down Expand Up @@ -465,6 +467,49 @@

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

// Добавляет колонку отчета
//
// Параметры:
// Колонка - Строка - см. КолонкиОтчетаБенчмарков
//
// Возвращаемое значение:
// ЭтотОбъект
Функция ДобавитьКолонку(Колонка) Экспорт

Если _Колонки.Найти(Колонка) = Неопределено Тогда
_Колонки.Добавить(КолонкиОтчетаБенчмарков[Колонка]);
КонецЕсли;
Comment on lines +479 to +481
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider adding validation for column existence

The code adds a column by looking it up in КолонкиОтчетаБенчмарков, but doesn't check if the lookup succeeded. Consider adding validation to prevent adding non-existent columns.

Функция ДобавитьКолонку(Колонка) Экспорт
	
	Если _Колонки.Найти(Колонка) = Неопределено Тогда
-		_Колонки.Добавить(КолонкиОтчетаБенчмарков[Колонка]);
+		КолонкаЗначение = КолонкиОтчетаБенчмарков[Колонка];
+		Если КолонкаЗначение = Неопределено Тогда
+			ВызватьИсключение("Неизвестная колонка отчета: " + Колонка);
+		КонецЕсли;
+		_Колонки.Добавить(КолонкаЗначение);
	КонецЕсли;

	Возврат ЭтотОбъект;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Если _Колонки.Найти(Колонка) = Неопределено Тогда
_Колонки.Добавить(КолонкиОтчетаБенчмарков[Колонка]);
КонецЕсли;
Если _Колонки.Найти(Колонка) = Неопределено Тогда
КолонкаЗначение = КолонкиОтчетаБенчмарков[Колонка];
Если КолонкаЗначение = Неопределено Тогда
ВызватьИсключение("Неизвестная колонка отчета: " + Колонка);
КонецЕсли;
_Колонки.Добавить(КолонкаЗначение);
КонецЕсли;


Возврат ЭтотОбъект;

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

// Удаляет добавленную колонку отчета
//
// Параметры:
// Колонка - Строка - см. КолонкиОтчетаБенчмарков
//
// Возвращаемое значение:
// ЭтотОбъект
Функция УдалитьКолонку(Колонка) Экспорт

Инд = _Колонки.Найти(Колонка);
Если Не Инд = Неопределено Тогда
_Колонки.Удалить(Инд);
КонецЕсли;

Возврат ЭтотОбъект;

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

// Добавленные колонки отчета
//
// Возвращаемое значение:
// Массив из Строка - см. КолонкиОтчетаБенчмарков
Функция Колонки() Экспорт
Возврат Новый Массив(Новый ФиксированныйМассив(_Колонки));
КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand Down
Loading
Loading