Skip to content

Commit 963ea75

Browse files
committed
Рефакторинг и улучшение документации
1 parent 160acc9 commit 963ea75

16 files changed

Lines changed: 1069 additions & 844 deletions

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# BenchmarkOneScript
32

43
[![Release](https://img.shields.io/github/release/Stivo182/BenchmarkOneScript.svg)](https://github.com/Stivo182/BenchmarkOneScript/releases)
@@ -18,7 +17,6 @@
1817

1918
Библиотека для измерения производительности кода на OneScript, вдохновлённая [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet/), с поддержкой параметризации, мониторинга памяти и гибкой настройки тестов.
2019

21-
2220
## Возможности
2321

2422
- **Гибкая настройка:** конфигурация тестов через аннотации, программный код и CLI.
@@ -28,7 +26,7 @@
2826
- **Метрики:** время выполнения (среднее, минимум, максимум), стандартное отклонение и ошибка, операций в секунду (Op/s), квартили и произвольные процентили.
2927
- **Экспорт результатов:** сохранение результатов выполнения бенчмарков в Markdown, JSON, HTML.
3028

31-
## 🚀 Быстрый старт
29+
## Быстрый старт
3230

3331
## 1. Установка
3432

@@ -38,7 +36,7 @@ opm install benchmark
3836

3937
## 2. Создание бенчмарка
4038

41-
Создайте класс с методами, помеченными аннотацией `&Бенчмарк`, где каждый метод реализует тестируемую логику.
39+
Создайте класс с методами, помеченными аннотацией `&Бенчмарк`, где каждый метод реализует тестируемую логику.
4240
В следующем примере мы сравниваем алгоритмы конкатенации строк через оператор `+` и метод `СтрСоединить`:
4341

4442
```bsl
@@ -79,14 +77,13 @@ opm install benchmark
7977
**CLI:**
8078

8179
```bash
82-
benchos run [OPTIONS] [FILE]
80+
benchos run КонкатенацияСтрок.os
8381
```
8482

8583
**API:**
8684

8785
```bsl
8886
#Использовать benchmark
89-
#Использовать "."
9087
9188
Результат = Бенчмаркинг.Запустить(Тип("КонкатенацияСтрок"));
9289
```

docs/CLI.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,27 @@ benchos run [OPTIONS] [FILE]
1010

1111
### Опции
1212

13-
| Опция | Описание | Пример |
14-
| --- | --- | --- |
15-
| `--iterationCount` | Количество измерительных итераций | `--iterationCount 10` |
16-
| `--iterationTime` | Минимальное время выполнения одной итерации (мс) | `--iterationTime 500` |
17-
| `--warmupCount` | Количество прогревочных итераций | `--warmupCount 10` |
18-
| `--invocationCount` | Количество вызовов метода за итерацию | `--invocationCount 100` |
19-
| `--runtime` | Версии OneScript через запятую (current, stable, dev, x.x.x). | `--runtime dev,stable` |
20-
| `--throughput` | Стратегия выполнения [`ПропускнаяСпособность`](СтратегииЗапуска.md#пропускная-способность-throughput) | |
21-
| `--coldstart` | Стратегия выполнения [`ХолодныйЗапуск`](СтратегииЗапуска.md#холодный-запуск-cold-start) | |
22-
| `-m`, `--memory` | Включить [мониторинг использования памяти](МониторингПамяти.md) | |
23-
| `-e`, `--exporters` | Форматы [экспорта результатов](ЭкспортРезультатов.md) (`md`, `json`, `html`) | `-e json,html` |
24-
| `-a`, `--artifacts` | Каталог для сохранения результатов | `-a path/to/file` |
25-
| `-r`, `--recursive` | Рекурсивный поиск в поддиректориях | |
26-
| `--settings` | Файл настроек бенчмарков в формате JSON | `--settings path/to/settings.json` |
27-
| `--debug` | Порт отладки | `--debug 2801` |
13+
| Опция | Описание | По умолчанию | Пример |
14+
| --- | --- | --- | --- |
15+
| `--iterationCount` | Количество измерительных итераций | `15` | `--iterationCount 10` |
16+
| `--iterationTime` | Минимальное время выполнения одной итерации (мс) | `100` | `--iterationTime 500` |
17+
| `--warmupCount` | Количество прогревочных итераций | `6` | `--warmupCount 10` |
18+
| `--invocationCount` | Количество вызовов метода за итерацию (0 = авто) | `0` | `--invocationCount 100` |
19+
| `--runtime` | Версии OneScript через запятую (`current`, `stable`, `dev`, `x.x.x`) | | `--runtime dev,stable` |
20+
| `--throughput` | Стратегия выполнения [`ПропускнаяСпособность`](СтратегииЗапуска.md#пропускная-способность-throughput) | | |
21+
| `--coldstart` | Стратегия выполнения [`ХолодныйЗапуск`](СтратегииЗапуска.md#холодный-запуск-cold-start) | | |
22+
| `-m`, `--memory` | Включить [мониторинг использования памяти](МониторингПамяти.md) | | |
23+
| `-e`, `--exporters` | Форматы [экспорта результатов](ЭкспортРезультатов.md) через запятую: `md`, `json`, `html` | | `-e json, html` |
24+
| `-a`, `--artifacts` | Каталог для сохранения результатов | `.\BenchmarkArtifacts` | `-a path/to/dir` |
25+
| `-r`, `--recursive` | Рекурсивный поиск в поддиректориях | | |
26+
| `--settings` | Файл настроек бенчмарков в формате JSON | | `--settings path/to/settings.json` |
27+
| `--debug` | Порт отладки | | `--debug 2801` |
28+
29+
### Примечания
30+
31+
- Опции `--throughput` и `--coldstart` взаимно исключают друг друга.
32+
- Значение `--invocationCount 0` включает автоматический расчёт количества вызовов за итерацию.
33+
- Опции `--warmupCount`, `--invocationCount`, `--iterationTime` игнорируются при стратегии `--coldstart`.
2834

2935
## Примеры
3036

@@ -44,6 +50,9 @@ benchos run /path/to/benchmarks
4450
# Запуск всех бенчмарков в директории, включая вложенные каталоги
4551
benchos run -r /path/to/benchmarks
4652

47-
# Рекурсивный запуск с мониторингом памяти и экспортом в JSON
48-
benchos run -r -m -e json ./benchmarks/
53+
# Рекурсивный запуск с мониторингом памяти и экспортом в JSON и HTML
54+
benchos run -r -m -e 'json, html' ./benchmarks/
55+
56+
# Холодный запуск с 10 итерациями
57+
benchos run --coldstart --iterationCount 10 /path/to/МойКласс.os
4958
```

docs/БыстрыйСтарт.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ opm install benchmark
88

99
## 2. Создание бенчмарка
1010

11-
Создайте класс с методами, помеченными аннотацией `&Бенчмарк`, где каждый метод реализует тестируемую логику.
11+
Создайте класс с методами, помеченными аннотацией `&Бенчмарк`, где каждый метод реализует тестируемую логику.
1212
В следующем примере мы сравниваем алгоритмы конкатенации строк через оператор `+` и метод `СтрСоединить`:
1313

1414
```bsl
@@ -42,21 +42,21 @@ opm install benchmark
4242
Текст = СтрСоединить(МассивПодстрок);
4343
КонецПроцедуры
4444
```
45+
4546
## 3. Запуск бенчмарков
4647

4748
Запустите бенчмарки одним из следующих способов:
4849

4950
**CLI:**
5051

5152
```bash
52-
benchos run [OPTIONS] [FILE]
53+
benchos run КонкатенацияСтрок.os
5354
```
5455

5556
**API:**
5657

5758
```bsl
5859
#Использовать benchmark
59-
#Использовать "."
6060
6161
Результат = Бенчмаркинг.Запустить(Тип("КонкатенацияСтрок"));
6262
```

docs/ЗапускБенчмарков.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ benchos run [OPTIONS] [FILE]
88

99
Подробнее см. в разделе [CLI](CLI.md).
1010

11-
### Примеры использования
11+
### Примеры
1212

1313
```bash
1414
# Запуск по имени класса (файл МойКласс.os должен существовать в текущей директории)
@@ -47,7 +47,7 @@ benchos run -r -m -e json ./benchmarks/
4747
```bsl
4848
ДескрипторыБенчмарков = Новый КоллекцияДескрипторовБенчмарков(Тип("МойКласс"));
4949
50-
// Запуск конкретного бенчмарка
50+
// Запуск конкретного бенчмарка по имени
5151
ДескрипторБенчмарка = ДескрипторыБенчмарков.НайтиПоИмени("МойБенчмарк");
5252
Результат = Бенчмаркинг.Запустить(ДескрипторБенчмарка);
5353
@@ -60,10 +60,10 @@ benchos run -r -m -e json ./benchmarks/
6060

6161
```bsl
6262
// Запуск из каталога
63-
Результат = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks");
63+
Результаты = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks");
6464
6565
// Запуск из каталога, включая вложенные каталоги
66-
Результат = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks", Истина);
66+
Результаты = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks", Истина);
6767
```
6868

6969
### Запуск с передачей конфигурации
@@ -84,4 +84,9 @@ benchos run -r -m -e json ./benchmarks/
8484
// ...
8585
8686
Результат = Бенчмаркинг.Запустить(Тип("МойКласс"), Конфигурация);
87+
88+
// Запуск из каталога с конфигурацией, которая объединяется с приоритетом с конфигурацией каждого бенчмарка
89+
Конфигурация = Новый КонфигурацияБенчмарков();
90+
Конфигурация.УстановитьКоличествоИтераций(10);
91+
Результаты = Бенчмаркинг.ЗапуститьИзКаталога("/path/to/benchmarks", Истина, Конфигурация);
8792
```

0 commit comments

Comments
 (0)