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
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,15 @@ benchos run [FILE]
После завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown:

```
BenchmarkOneScript v0.1.0, OneScript v2.0.0.567-rc7-29039316, Microsoft Windows NT 10.0.20348.0 \
BenchmarkOneScript v0.2.0, OneScript v2.0.0.567-rc7-29039316, Microsoft Windows NT 10.0.20348.0 \
Intel Core i7-8700 CPU 3.20GHz (Max: 3.19GHz) (Coffee Lake), 1 CPU, 12 logical and 6 physical cores

| Method | Количество | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s | Allocated |
|------------------|-----------:|----------|------------:|-----------:|------------:|------:|------------:|-------:|-------------:|
| МассивПодстрок | 100 | false | 72.46 us | 174.7 ns | 957.1 ns | 1.589 | 72.09 us | 13,801 | 17.77 KB |
| ОператорСложения | 100 | true | 45.67 us | 323.2 ns | 1,770.3 ns | 1.000 | 45.67 us | 21,898 | 126.54 KB |
| МассивПодстрок | 1,000 | false | 692.11 us | 823.5 ns | 4,510.5 ns | 0.567 | 692.44 us | 1,445 | 165.43 KB |
| ОператорСложения | 1,000 | true | 1,220.96 us | 7,647.4 ns | 41,886.6 ns | 1.000 | 1,205.49 us | 819 | 11,808.96 KB |
| Method | Количество | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s | Allocated |
|------------------|-----------:|----------|------------:|------------:|------------:|------:|------------:|---------:|-------------:|
| МассивПодстрок | 100 | false | 71.10 us | 218.1 ns | 844.6 ns | 1.559 | 70.79 us | 14,065.4 | 17.77 KB |
| ОператорСложения | 100 | true | 45.65 us | 348.4 ns | 1,349.3 ns | 1.000 | 45.40 us | 21,907.3 | 126.54 KB |
| МассивПодстрок | 1,000 | false | 701.28 us | 13,839.6 ns | 53,600.7 ns | 0.561 | 678.78 us | 1,426.0 | 165.43 KB |
| ОператорСложения | 1,000 | true | 1,251.74 us | 15,190.6 ns | 58,832.8 ns | 1.000 | 1,236.15 us | 798.9 | 11,808.96 KB |

// Легенда
Количество : Значение параметра 'Количество'
Expand Down
14 changes: 7 additions & 7 deletions docs/БыстрыйСтарт.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,15 @@ benchos run [FILE]
После завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown:

```
BenchmarkOneScript v0.1.0, OneScript v2.0.0.567-rc7-29039316, Microsoft Windows NT 10.0.20348.0 \
BenchmarkOneScript v0.2.0, OneScript v2.0.0.567-rc7-29039316, Microsoft Windows NT 10.0.20348.0 \
Intel Core i7-8700 CPU 3.20GHz (Max: 3.19GHz) (Coffee Lake), 1 CPU, 12 logical and 6 physical cores

| Method | Количество | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s | Allocated |
|------------------|-----------:|----------|------------:|-----------:|------------:|------:|------------:|-------:|-------------:|
| МассивПодстрок | 100 | false | 72.46 us | 174.7 ns | 957.1 ns | 1.589 | 72.09 us | 13,801 | 17.77 KB |
| ОператорСложения | 100 | true | 45.67 us | 323.2 ns | 1,770.3 ns | 1.000 | 45.67 us | 21,898 | 126.54 KB |
| МассивПодстрок | 1,000 | false | 692.11 us | 823.5 ns | 4,510.5 ns | 0.567 | 692.44 us | 1,445 | 165.43 KB |
| ОператорСложения | 1,000 | true | 1,220.96 us | 7,647.4 ns | 41,886.6 ns | 1.000 | 1,205.49 us | 819 | 11,808.96 KB |
| Method | Количество | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s | Allocated |
|------------------|-----------:|----------|------------:|------------:|------------:|------:|------------:|---------:|-------------:|
| МассивПодстрок | 100 | false | 71.10 us | 218.1 ns | 844.6 ns | 1.559 | 70.79 us | 14,065.4 | 17.77 KB |
| ОператорСложения | 100 | true | 45.65 us | 348.4 ns | 1,349.3 ns | 1.000 | 45.40 us | 21,907.3 | 126.54 KB |
| МассивПодстрок | 1,000 | false | 701.28 us | 13,839.6 ns | 53,600.7 ns | 0.561 | 678.78 us | 1,426.0 | 165.43 KB |
| ОператорСложения | 1,000 | true | 1,251.74 us | 15,190.6 ns | 58,832.8 ns | 1.000 | 1,236.15 us | 798.9 | 11,808.96 KB |

// Легенда
Количество : Значение параметра 'Количество'
Expand Down
8 changes: 4 additions & 4 deletions docs/МониторингПамяти.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

### Вывод

| Method | Количество | Mean | StdErr | StdDev | Median | Op/s | Allocated |
|----------|-----------:|-----------:|------------:|---------:|-----------:|---------:|------------:|
| Бенчмарк | 100 | 43.64 us | 666.4 ns | 3.650 us | 42.46 us | 22,916.4 | 126.9 KB |
| Бенчмарк | 1,000 | 1,280.5 us | 21,438.1 ns | 117.4 us | 1,220.5 us | 781.0 | 11,809.4 KB |
| Method | Количество | Mean | StdErr | StdDev | Median | Op/s | Allocated |
|----------|-----------:|------------:|------------:|----------:|------------:|---------:|------------:|
| Бенчмарк | 100 | 44.01 us | 504.0 ns | 1.952 us | 43.72 us | 22,723.2 | 126.9 KB |
| Бенчмарк | 1,000 | 1,293.41 us | 21,401.2 ns | 82.887 us | 1,260.40 us | 773.1 | 11,809.4 KB |
20 changes: 10 additions & 10 deletions docs/Параметризация.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@

### Вывод

| Method | ДобавляемаяЗадержка | Задержка1 | Задержка2 | Mean | StdErr | StdDev | Median | Op/s |
|----------|--------------------:|----------:|----------:|---------:|---------:|---------:|---------:|------:|
| Бенчмарк | 0 | 100 | 10 | 110.9 ms | 22.06 us | 85.44 us | 111.0 ms | 9.015 |
| Бенчмарк | 0 | 100 | 20 | 120.9 ms | 24.96 us | 96.68 us | 121.0 ms | 8.270 |
| Бенчмарк | 0 | 200 | 10 | 210.9 ms | 17.05 us | 66.04 us | 211.0 ms | 4.740 |
| Бенчмарк | 0 | 200 | 20 | 220.9 ms | 15.21 us | 58.90 us | 221.0 ms | 4.526 |
| Бенчмарк | 5 | 100 | 10 | 115.9 ms | 18.02 us | 69.80 us | 115.9 ms | 8.626 |
| Бенчмарк | 5 | 100 | 20 | 125.9 ms | 15.85 us | 61.40 us | 126.0 ms | 7.941 |
| Бенчмарк | 5 | 200 | 10 | 215.9 ms | 21.92 us | 84.91 us | 216.0 ms | 4.632 |
| Бенчмарк | 5 | 200 | 20 | 225.9 ms | 16.34 us | 63.28 us | 225.9 ms | 4.426 |
| Method | ДобавляемаяЗадержка | Задержка1 | Задержка2 | Mean | StdErr | StdDev | Median | Op/s |
|----------|--------------------:|----------:|----------:|---------:|--------:|----------:|---------:|------:|
| Бенчмарк | 0 | 100 | 10 | 110.8 ms | 39.2 us | 151.77 us | 110.9 ms | 9.022 |
| Бенчмарк | 0 | 100 | 20 | 120.9 ms | 32.3 us | 124.97 us | 120.9 ms | 8.273 |
| Бенчмарк | 0 | 200 | 10 | 210.9 ms | 30.2 us | 116.98 us | 210.9 ms | 4.742 |
| Бенчмарк | 0 | 200 | 20 | 220.9 ms | 32.9 us | 127.50 us | 220.9 ms | 4.527 |
| Бенчмарк | 5 | 100 | 10 | 115.9 ms | 19.0 us | 73.58 us | 115.9 ms | 8.627 |
| Бенчмарк | 5 | 100 | 20 | 125.8 ms | 29.4 us | 114.00 us | 125.8 ms | 7.946 |
| Бенчмарк | 5 | 200 | 10 | 215.9 ms | 26.6 us | 103.01 us | 215.9 ms | 4.632 |
| Бенчмарк | 5 | 200 | 20 | 225.9 ms | 31.2 us | 121.02 us | 226.0 ms | 4.427 |
16 changes: 8 additions & 8 deletions docs/СортировкаОтчета.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@

### Вывод

| Method | Множитель | Mean | StdErr | StdDev | Median | Op/s |
|-----------|----------:|---------:|---------:|---------:|---------:|------:|
| Быстрый | 1 | 10.98 ms | 4.183 us | 16.20 us | 10.99 ms | 91.04 |
| Быстрый | 2 | 20.95 ms | 10.44 us | 40.43 us | 20.97 ms | 47.72 |
| Медленный | 1 | 20.97 ms | 7.558 us | 29.27 us | 20.97 ms | 47.70 |
| Быстрый | 3 | 30.96 ms | 15.85 us | 61.40 us | 30.96 ms | 32.30 |
| Медленный | 2 | 40.92 ms | 20.75 us | 80.36 us | 40.95 ms | 24.44 |
| Медленный | 3 | 60.96 ms | 12.76 us | 49.42 us | 60.96 ms | 16.40 |
| Method | Множитель | Mean | StdErr | StdDev | Median | Op/s |
|-----------|----------:|---------:|----------:|----------:|---------:|------:|
| Быстрый | 1 | 10.97 ms | 8.441 us | 32.69 us | 10.98 ms | 91.17 |
| Быстрый | 2 | 20.93 ms | 16.253 us | 62.95 us | 20.92 ms | 47.77 |
| Медленный | 1 | 20.95 ms | 12.332 us | 47.76 us | 20.98 ms | 47.73 |
| Быстрый | 3 | 30.92 ms | 22.293 us | 86.34 us | 30.94 ms | 32.34 |
| Медленный | 2 | 40.91 ms | 29.619 us | 114.71 us | 40.98 ms | 24.44 |
| Медленный | 3 | 60.89 ms | 29.009 us | 112.35 us | 60.93 ms | 16.42 |

22 changes: 11 additions & 11 deletions docs/Эталоны.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@

В отчете автоматически добавляется колонка `Ratio`, показывающая отношение среднего времени выполнения (Mean) к эталону.

| Method | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s |
|-------------|----------|---------:|---------:|---------:|------:|---------:|------:|
| Задержка100 | true | 100.9 ms | 20.05 us | 77.65 us | 1 | 100.9 ms | 9.910 |
| Задержка150 | false | 150.9 ms | 15.45 us | 59.83 us | 1.496 | 150.9 ms | 6.625 |
| Задержка50 | false | 50.91 ms | 19.12 us | 74.03 us | 0.505 | 50.92 ms | 19.64 |
| Method | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s |
|-------------|----------|----------:|---------:|----------:|------:|----------:|-------:|
| Задержка100 | true | 100.93 ms | 18.96 us | 73.45 us | 1.000 | 100.95 ms | 9.908 |
| Задержка150 | false | 150.88 ms | 30.44 us | 117.89 us | 1.495 | 150.83 ms | 6.628 |
| Задержка50 | false | 50.91 ms | 19.17 us | 74.26 us | 0.504 | 50.93 ms | 19.644 |

## Эталоны по категориям

Expand Down Expand Up @@ -79,9 +79,9 @@

### Вывод

| Method | Categories | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s |
|-------------|------------|----------|---------:|---------:|---------:|------:|---------:|------:|
| Задержка50 | Быстрый | true | 50.88 ms | 20.70 us | 80.18 us | 1 | 50.86 ms | 19.65 |
| Задержка100 | Быстрый | false | 100.9 ms | 21.15 us | 81.92 us | 1.983 | 100.9 ms | 9.911 |
| Задержка300 | Медленный | true | 301.0 ms | 16.55 us | 64.08 us | 1 | 301.0 ms | 3.323 |
| Задержка350 | Медленный | false | 350.9 ms | 25.87 us | 100.2 us | 1.166 | 350.9 ms | 2.850 |
| Method | Categories | Baseline | Mean | StdErr | StdDev | Ratio | Median | Op/s |
|-------------|------------|----------|----------:|---------:|----------:|------:|----------:|-------:|
| Задержка50 | Быстрый | true | 50.86 ms | 23.53 us | 91.12 us | 1 | 50.87 ms | 19.662 |
| Задержка100 | Быстрый | false | 100.93 ms | 19.70 us | 76.28 us | 2 | 100.96 ms | 9.908 |
| Задержка300 | Медленный | true | 300.85 ms | 37.90 us | 146.77 us | 1 | 300.91 ms | 3.324 |
| Задержка350 | Медленный | false | 350.89 ms | 21.07 us | 81.60 us | 1 | 350.91 ms | 2.850 |
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,12 @@
Функция Прочитать(Замеры) Экспорт

Ожидаем.Что(Замеры, "Набор замеров не должен быть пустым").Заполнено();

КоличествоИтераций = Замеры.Количество();
НаносекундВСекунде = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой;

ЗамерыВремени = ВыгрузитьЗамеры(Замеры, "НаносекундЗаОперацию", ЭтапыБенчмарка.Измерение);
ЗамерыПамяти = ВыгрузитьЗамеры(Замеры, "ВыделяемаяПамятьЗаОперацию", ЭтапыБенчмарка.Память);

КоличествоИтераций = ЗамерыВремени.Количество();
НаносекундВСекунде = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой;

Квартили = МатематическиеФункцииБенчмарков.Квартили(ЗамерыВремени);

Expand Down
51 changes: 30 additions & 21 deletions tests/ТестыСтатистики.os
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
&Тест
Процедура Тест_Пустой() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("");
ТаблицаЗамеров = ТаблицаЗамеров("", "");

Статистика = Новый СтатистикаБенчмарка();

Expand All @@ -21,7 +21,7 @@
&Тест
Процедура Тест_НечетныйРазмер() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14");
ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", "100, 101");

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);

Expand All @@ -44,7 +44,7 @@
&Тест
Процедура Тест_ЧетныйРазмер() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 20, 4");
ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 20, 4", "100, 101");

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);

Expand All @@ -67,7 +67,7 @@
&Тест
Процедура Тест_ОдинаковыеЗначения() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("5, 5, 5, 5");
ТаблицаЗамеров = ТаблицаЗамеров("5, 5, 5, 5", "100, 101");

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);

Expand All @@ -90,7 +90,7 @@
&Тест
Процедура Тест_ОтрицательныеЗначения() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("-12, 15, -22, 25, 17, 28, 0, 4");
ТаблицаЗамеров = ТаблицаЗамеров("-12, 15, -22, 25, 17, 28, 0, 4", "100, 101");

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);

Expand All @@ -115,7 +115,7 @@

ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Миллисекунда.ОтношениеКБазовой;

ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", ОтношениеКБазовой);
ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой);

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);
Статистика.ВМиллисекунды();
Expand All @@ -141,7 +141,7 @@

ОтношениеКБазовой = ЕдиницыИзмеренийБенчмарков.Секунда.ОтношениеКБазовой;

ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", ОтношениеКБазовой);
ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", "100, 101", ОтношениеКБазовой);

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);
Статистика.ВСекунды();
Expand All @@ -165,7 +165,7 @@
&Тест
Процедура Тест_ВНаносекунды() Экспорт

ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14");
ТаблицаЗамеров = ТаблицаЗамеров("12, 15, 22, 25, 17, 28, 14", "100, 101");

Статистика = Новый СтатистикаБенчмарка(ТаблицаЗамеров);
Статистика.ВСекунды().ВНаносекунды();
Expand All @@ -186,19 +186,28 @@

КонецПроцедуры

Функция ТаблицаЗамеров(Строка, Множитель = 1) Экспорт
Функция ТаблицаЗамеров(СтрокаЗамерыВремени, СтрокаЗамерыПамяти, Множитель = 1) Экспорт

Результат = ПроцессорыКоллекций
.ИзСтроки(Строка, ",", Ложь)
.Обработать("Элемент -> Число(Элемент) * Множитель;", Новый Структура("Множитель", Множитель))
.Получить(Тип("ТаблицаЗначений"));

Результат.Колонки.Значение.Имя = "НаносекундЗаОперацию";
Результат.Колонки.Добавить("Этап");
Результат.Колонки.Добавить("ВыделяемаяПамятьЗаОперацию");

Результат.ЗаполнитьЗначения(ЭтапыБенчмарка.Измерение, "Этап");

Возврат Результат;
Таблица = Новый ТаблицаЗначений();
Таблица.Колонки.Добавить("Этап");
Таблица.Колонки.Добавить("НаносекундЗаОперацию");
Таблица.Колонки.Добавить("ВыделяемаяПамятьЗаОперацию");

МассивЗамеровВремени = СтрРазделить(СтрокаЗамерыВремени, ",", Ложь);
МассивЗамеровПамяти = СтрРазделить(СтрокаЗамерыПамяти, ",", Ложь);

Для Каждого НаносекундЗаОперацию Из МассивЗамеровВремени Цикл
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Этап = ЭтапыБенчмарка.Измерение;
СтрокаТаблицы.НаносекундЗаОперацию = Число(НаносекундЗаОперацию) * Множитель;
КонецЦикла;

Для Каждого ВыделяемаяПамятьЗаОперацию Из МассивЗамеровПамяти Цикл
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Этап = ЭтапыБенчмарка.Память;
СтрокаТаблицы.ВыделяемаяПамятьЗаОперацию = Число(ВыделяемаяПамятьЗаОперацию) * Множитель;
КонецЦикла;

Возврат Таблица;

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