{"id":28294624,"url":"https://github.com/stivo182/benchmarkonescript","last_synced_at":"2026-03-09T23:28:45.526Z","repository":{"id":289168625,"uuid":"970341966","full_name":"Stivo182/BenchmarkOneScript","owner":"Stivo182","description":"Бенчмаркинг на OneScript","archived":false,"fork":false,"pushed_at":"2026-03-07T11:44:45.000Z","size":829,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-07T18:10:20.676Z","etag":null,"topics":["benchmark","benchmarking","bsl","onescript","oscript","tests"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Stivo182.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-21T21:38:52.000Z","updated_at":"2026-03-05T16:00:04.000Z","dependencies_parsed_at":"2025-05-13T23:35:40.221Z","dependency_job_id":"fa521c4c-e641-48b2-99d0-da613f135ba4","html_url":"https://github.com/Stivo182/BenchmarkOneScript","commit_stats":null,"previous_names":["stivo182/benchmarkonescript"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Stivo182/BenchmarkOneScript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stivo182%2FBenchmarkOneScript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stivo182%2FBenchmarkOneScript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stivo182%2FBenchmarkOneScript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stivo182%2FBenchmarkOneScript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Stivo182","download_url":"https://codeload.github.com/Stivo182/BenchmarkOneScript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stivo182%2FBenchmarkOneScript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30316770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","benchmarking","bsl","onescript","oscript","tests"],"created_at":"2025-05-22T11:18:11.871Z","updated_at":"2026-03-09T23:28:45.511Z","avatar_url":"https://github.com/Stivo182.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BenchmarkOneScript\n\n[![Release](https://img.shields.io/github/release/Stivo182/BenchmarkOneScript.svg)](https://github.com/Stivo182/BenchmarkOneScript/releases)\n[![Тестирование](https://github.com/Stivo182/BenchmarkOneScript/actions/workflows/test.yml/badge.svg)](https://github.com/Stivo182/BenchmarkOneScript/actions/workflows/test.yml)\n[![Статус порога качества](https://sonar.openbsl.ru/api/project_badges/measure?project=benchmark\u0026metric=alert_status\u0026token=sqb_3054e7cdc0478fa1fc9ec12e319b76086791667e)](https://sonar.openbsl.ru/dashboard?id=benchmark)\n[![Покрытие](https://sonar.openbsl.ru/api/project_badges/measure?project=benchmark\u0026metric=coverage\u0026token=sqb_3054e7cdc0478fa1fc9ec12e319b76086791667e)](https://sonar.openbsl.ru/dashboard?id=benchmark)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003cdiv\u003e\n\t\u003ca href=\"docs/БыстрыйСтарт.md\"\u003eБыстрый старт\u003c/a\u003e\n\t\u003cspan\u003e · \u003c/span\u003e\n\t\u003ca href=\"docs/README.md\"\u003eДокументация\u003c/a\u003e\n\t\u003cspan\u003e · \u003c/span\u003e\n\t\u003ca href=\"samples\"\u003eПримеры\u003c/a\u003e\n\u003c/div\u003e\n\u003c/br\u003e\n\nБиблиотека для измерения производительности кода на OneScript, вдохновлённая [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet/), с поддержкой параметризации, мониторинга памяти и гибкой настройки тестов.\n\n## Возможности\n\n- **Гибкая настройка:** конфигурация тестов через аннотации, программный код и CLI.\n- **Параметризованные тесты:** запуск одних и тех же тестов с разными входными данными.\n- **Мониторинг памяти:** отслеживание аллокации памяти во время выполнения.\n- **Мультиверсионное сравнение:** запуск бенчмарков на указанных версиях исполняющей среды OneScript с консолидацией результатов.\n- **Метрики:** время выполнения (среднее, минимум, максимум), стандартное отклонение и ошибка, операций в секунду (Op/s), квартили и произвольные процентили.\n- **Экспорт результатов:** сохранение результатов выполнения бенчмарков в Markdown, JSON, HTML.\n\n## Быстрый старт\n\n## 1. Установка\n\n```bash\nopm install benchmark\n```\n\n## 2. Создание бенчмарка\n\nСоздайте класс с методами, помеченными аннотацией `\u0026Бенчмарк`, где каждый метод реализует тестируемую логику.\nВ следующем примере мы сравниваем алгоритмы конкатенации строк через оператор `+` и метод `СтрСоединить`:\n\n```bsl\n// СборкиСтрок.os\n\n\u0026Параметры(100, 1000)\nПерем Количество Экспорт;\nПерем Элементы;\n\n\u0026МониторингПамяти\nПроцедура ПриСозданииОбъекта()\nКонецПроцедуры\n\n\u0026ПередКаждым\nПроцедура ПодготовитьДанные(Контекст) Экспорт\n\n\tЭлементы = Новый Массив();\n\n\tДля к = 1 По Количество Цикл\n\t\tЭлементы.Добавить(\"Элемент\" + к);\n\tКонецЦикла;\n\nКонецПроцедуры\n\n\u0026Бенчмарк\n\u0026Эталон\nПроцедура КонкатенацияВЦикле() Экспорт\n\n\tРезультат = \"\";\n\n\tДля Каждого Элемент Из Элементы Цикл\n\t\tРезультат = Результат + Элемент;\n\tКонецЦикла;\n\nКонецПроцедуры\n\n\u0026Бенчмарк\nПроцедура ЧерезСтрСоединить() Экспорт\n\n\tРезультат = СтрСоединить(Элементы);\n\nКонецПроцедуры\n```\n\n## 3. Запуск бенчмарков\n\nЗапустите бенчмарки одним из следующих способов:\n\n**CLI:**\n\n```bash\nbenchos run СборкиСтрок.os\n```\n\n**API:**\n\n```bsl\n#Использовать benchmark\n\nРезультат = Бенчмаркинг.Запустить(Тип(\"СборкиСтрок\"));\n```\n\nБолее подробно про запуск бенчмарков можно почитать в [документации](docs/ЗапускБенчмарков.md).\n\n## 4. Просмотр результатов\n\nПосле завершения тестов в консоли будет отображена подробная сводная таблица, оформленная в формате Markdown:\n\n```\n// Сводка\nBenchmarkOneScript v0.7.0, OneScript v2.0.1-rc.2+702, Microsoft Windows NT 10.0.20348.0 \\\nIntel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores\n\n| Method             | Количество | Baseline |         Mean |       StdErr |       StdDev | Ratio |      Op/s |    Allocated |\n|--------------------|-----------:|----------|-------------:|-------------:|-------------:|------:|----------:|-------------:|\n| КонкатенацияВЦикле |        100 | Yes      |    28.782 us |    819.33 ns |   3,173.3 ns |  1.00 |  34,744.1 |    92.524 KB |\n| ЧерезСтрСоединить  |        100 | No       |     4.078 us |     53.84 ns |     208.5 ns |  0.14 | 245,203.4 |     2.672 KB |\n| КонкатенацияВЦикле |      1,000 | Yes      | 1,139.845 us | 30,999.38 ns | 120,060.1 ns |  1.00 |     877.3 | 9,623.388 KB |\n| ЧерезСтрСоединить  |      1,000 | No       |    24.145 us |    633.03 ns |   2,451.7 ns |  0.02 |  41,416.1 |    20.250 KB |\n\n// Легенда\nКоличество : Значение параметра 'Количество'\nMean       : Арифметическое среднее всех измерений\nStdErr     : Стандартная ошибка всех измерений\nStdDev     : Стандартное отклонение всех измерений\nRatio      : Среднее значение соотношений времени выполнения относительно эталона ([Mean] / [Baseline Mean])\nOp/s       : Операций в секунду\nAllocated  : Выделяемая память на одну операцию\n1 us       : 1 Микросекунда\n1 ns       : 1 Наносекунда\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstivo182%2Fbenchmarkonescript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstivo182%2Fbenchmarkonescript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstivo182%2Fbenchmarkonescript/lists"}