Skip to content

Библиотека для бенчмаркинга на OneScript

License

Notifications You must be signed in to change notification settings

Stivo182/BenchmarkOneScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BenchmarkOneScript

На стадии разработки...

Библиотека для измерения производительности кода на OneScript, вдохновлённая BenchmarkDotNet, с поддержкой параметризации, мониторинга памяти и гибкой настройки тестов.

Возможности

  • Гибкая настройка: конфигурация тестов через аннотации или программный код.
  • Параметризованные тесты: запуск одних и тех же тестов с разными входными данными.
  • Мониторинг памяти: отслеживание выделенной памяти во время выполнения.
  • Метрики: время выполнения (mean, median), стандартное отклонение, стандартная ошибка, операций в секунду (Op/s).
  • Отчеты в Markdown: автоматическая генерация таблицы с результатами.

Быстрый старт

Бенчмарки описываются в отдельном классе через экспортируемые процедуры с указанием аннотации &Бенчмарк. Посмотрите на следующий пример:

// КонкатенацияСтрок.os

&Параметры(100, 1000)
Перем Количество Экспорт;
Перем Подстрока;

&МониторингПамяти
Процедура ПриСозданииОбъекта()
	Подстрока = "Просто текст";
КонецПроцедуры

&Бенчмарк
&Эталон
Процедура ОператорСложения() Экспорт
	Текст = "";
	Для НомерПодстроки = 1 По Количество Цикл
		Текст = Текст + Подстрока;
	КонецЦикла;
КонецПроцедуры

&Бенчмарк
Процедура МассивПодстрок() Экспорт
	МассивПодстрок = Новый Массив();
	Для НомерПодстроки = 1 По Количество Цикл
		МассивПодстрок.Добавить(Подстрока);
	КонецЦикла;

	Текст = СтрСоединить(МассивПодстрок);
КонецПроцедуры

Запуск бенчмарков можно выполнить следующими способами:

CLI:

benchos run [FILE]

FILE - имя файла класса бенчмарков в текущем каталоге, либо полный путь к нему

API:

#Использовать benchmark
#Использовать "."

Бенчмаркинг.Запустить(Тип("КонкатенацияСтрок"));

После выполнения тестов выведется сводная таблица в формате Markdown:

BenchmarkOneScript v0.1.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 |     Median | Ratio |     Op/s |   Allocated |
|------------------|-----------:|----------|-----------:|-----------:|------------:|-----------:|------:|---------:|------------:|
| МассивПодстрок   |        100 | false    |   75.44 us |   66.16 ns |    362.4 ns |   74.74 us | 1.624 | 13,256.1 |    17.77 KB |
| ОператорСложения |        100 | true     |   46.51 us |   88.31 ns |    483.7 ns |   45.90 us |     1 | 21,499.5 |    126.5 KB |
| МассивПодстрок   |      1,000 | false    |   686.0 us |   691.6 ns |  3,787.9 ns |   680.1 us | 0.505 |  1,457.8 |    165.4 KB |
| ОператорСложения |      1,000 | true     | 1,365.8 us | 4,913.6 ns | 26,912.8 ns | 1,341.6 us |     1 |    732.1 | 11,809.0 KB |

About

Библиотека для бенчмаркинга на OneScript

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published