GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - oscript-library/benchmark: Бенчмаркинг на OneScript

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

233 Commits
233 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
benchmarks
benchmarks
 
 
build
build
 
 
docs
docs
 
 
samples
samples
 
 
src
src
 
 
tasks
tasks
 
 
tests
tests
 
 
.bsl-language-server.json
.bsl-language-server.json
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
package-loader.os
package-loader.os
 
 
packagedef
packagedef
 
 
sonar-project.properties
sonar-project.properties
 
 

Repository files navigation

BenchmarkOneScript

Release Тестирование Статус порога качества Покрытие License: MIT

Быстрый старт · Документация · Примеры

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

Возможности

  • Гибкая настройка: аннотации, программный API, CLI и JSON-конфигурация.
  • Параметризация: выполнение бенчмарков с различными наборами входных данных.
  • Мониторинг памяти: измерение выделяемой памяти на операцию.
  • Сравнение версий OneScript: запуск бенчмарков в разных исполняющих средах с объединением результатов.
  • Подробная статистика: время выполнения, пропускная способность, стандартное отклонение, квартили, процентили и доверительные интервалы.
  • Адаптивные измерения: автоматическое завершение замеров при достижении заданной точности.
  • Анализ результатов: обнаружение выбросов, статистическое сравнение с эталоном и диагностика качества измерений.
  • Контроль производительности: программная проверка метрик и допустимых порогов.
  • Экспорт отчётов: Markdown, JSON и HTML.

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

1. Установка

opm install benchmark

Если приложение будет использоваться как CLI, установите его с флагом -s, --skip-install-deps.

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

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

// СборкиСтрок.os

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

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

&ПередКаждымКейсом
Процедура ПодготовитьДанные(Контекст) Экспорт

	Элементы = Новый Массив();

	Для к = 1 По Количество Цикл
		Элементы.Добавить("Элемент" + к);
	КонецЦикла;

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

&Бенчмарк
&Эталон
Процедура КонкатенацияВЦикле() Экспорт

	Результат = "";

	Для Каждого Элемент Из Элементы Цикл
		Результат = Результат + Элемент;
	КонецЦикла;

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

&Бенчмарк
Процедура ЧерезСтрСоединить() Экспорт

	Результат = СтрСоединить(Элементы);

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

3. Запуск бенчмарков

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

CLI:

benchos run СборкиСтрок.os

API:

#Использовать benchmark
#Использовать "path/to/benchmarks"

Результат = Бенчмаркинг.Запустить(Тип("СборкиСтрок"));

Более подробно про запуск бенчмарков можно почитать в документации.

4. Просмотр результатов

После завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown:

// Сводка
BenchmarkOneScript v0.7.0, OneScript v2.0.1-rc.2+702, Microsoft Windows NT 10.0.20348.0 \
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores

| Method             | Количество | Baseline |         Mean |       StdErr |       StdDev | Ratio |      Op/s |    Allocated |
|--------------------|-----------:|----------|-------------:|-------------:|-------------:|------:|----------:|-------------:|
| КонкатенацияВЦикле |        100 | Yes      |    28.782 us |    819.33 ns |   3,173.3 ns |  1.00 |  34,744.1 |    92.524 KB |
| ЧерезСтрСоединить  |        100 | No       |     4.078 us |     53.84 ns |     208.5 ns |  0.14 | 245,203.4 |     2.672 KB |
| КонкатенацияВЦикле |      1,000 | Yes      | 1,139.845 us | 30,999.38 ns | 120,060.1 ns |  1.00 |     877.3 | 9,623.388 KB |
| ЧерезСтрСоединить  |      1,000 | No       |    24.145 us |    633.03 ns |   2,451.7 ns |  0.02 |  41,416.1 |    20.250 KB |

// Легенда
Количество : Значение параметра 'Количество'
Mean       : Арифметическое среднее всех измерений
StdErr     : Стандартная ошибка всех измерений
StdDev     : Стандартное отклонение всех измерений
Ratio      : Среднее значение соотношений времени выполнения относительно эталона ([Mean] / [Baseline Mean])
Op/s       : Операций в секунду
Allocated  : Выделяемая память на одну операцию
1 us       : 1 Микросекунда
1 ns       : 1 Наносекунда

About

Бенчмаркинг на OneScript

Resources

Readme
License
Activity
Custom properties

Stars

3 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.