A1sCode Возможности Документация FAQ Скачать 🌗 v2.0 Release A1sBench: Бенчмаркинг 1С Профилирование кода и замер времени выполнения в 1С:Предприятие.
Инструмент для оптимизации производительности: просто, красиво, без зависимостей.
0 Зависимостей 11 Функций API MIT Лицензия

Эволюция замеров

Забудьте про ручной подсчет миллисекунд

Было (Ручной способ)
// Ручной бенчмаркинг 1С
Нач = ТекущаяУниверсальнаяДатаВМиллисекундах();

// ... Ваш код ...

Кон = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить("Время: " + (Кон - Нач) + " мс");
Стало (A1sBench)
// Профилирование 1С в 1 строку
Б = A1sBench.Start("Загрузка данных");

// ... Ваш код ...

A1sBench.Finish(Б); 
// Отчет с % и итогами
Инструмент для разработчиков Все для оптимизации производительности Полноценный бенчмаркинг 1С в одном легком модуле. 📦

Standalone модуль

Нулевые зависимости. Вставьте код в общий модуль и начните замер времени выполнения кода сразу. Никаких внешних компонент.

🇷🇺

Стандарты 1С

Код соответствует стандартам A1sCode. Использует #Область и &НаСервере. Удобный английский API (Start, Check, Finish).

📊

Экспорт отчетов

Генерируйте отчеты для заказчика. Экспорт в HTML таблицу, CSV или ТаблицуЗначений для анализа.

ToTable() PresentAs()

Сравнение версий (Compare)

Сделали рефакторинг? Узнайте точный прирост скорости. Функция Compare покажет разницу в миллисекундах и процентах по каждому шагу.

A1sBench.Compare(КонтекстСтарый, КонтекстНовый);
// → Ускорено на 150ms (12.5%)
⚠️

Пороги (CheckWarn)

Настройте контроль качества кода. Если операция длится дольше заданного времени — получите предупреждение.

Регресс-тесты
Документация Как начать профилирование Быстрый старт API Функции Примеры

Базовый сценарий замера

Как измерить время выполнения запроса или обработки в 1С.

Б = A1sBench.Start("Загрузка номенклатуры"); // Ваш код Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Номенклатура"); Результат = Запрос.Выполнить(); // Фиксация промежуточного времени Б = A1sBench.Check(Б, "Выполнение запроса"); ОбработатьМассив(Результат.Выгрузить()); // Финал: остановка + вывод отчета A1sBench.Finish(Б);

Справочник API

A1sBench ├── Start(Name) — начало бенчмарка ├── Check(Ctx, Step) — чекпоинт (шаг) ├── CheckWarn(Ctx, Step, Ms) — чекпоинт с порогом ├── Stop(Ctx) — остановить таймер ├── Show(Ctx) — показать отчет ├── Finish(Ctx) — Stop + Show ├── ToTable(Ctx) — получить ТаблицуЗначений ├── ToStructure(Ctx) — получить Структуру ├── PresentAs(Ctx, "html") — экспорт в строку ├── Compare(Ctx1, Ctx2) — сравнение сессий └── SelfTest() — проверка модуля

Сравнение производительности

Как доказать, что рефакторинг дал результат.

// Версия 1 (До) Б1 = A1sBench.Start("OldMethod"); // ... код ... A1sBench.Finish(Б1); // Версия 2 (После) Б2 = A1sBench.Start("NewMethod"); // ... код ... A1sBench.Finish(Б2); // Сравнение A1sBench.Compare(Б1, Б2);

HTML Отчет для заказчика

Вывод результатов в красивую таблицу.

// Получить HTML строку HTMLСтрока = A1sBench.PresentAs(Б, "html"); // Записать в файл или показать в HTML-поле
Вопросы и ответы Часто задаваемое о бенчмаркинге

❓ Как замерить время выполнения кода в 1С?

Стандартный способ — использовать функцию ТекущаяУниверсальнаяДатаВМиллисекундах() до и после кода. Однако с модулем A1sBench это делается одной командой Start и Finish, что автоматически дает подробный отчет с процентами.

❓ Нужны ли внешние компоненты для A1sBench?

Нет. A1sBench написан на нативном языке 1С и является standalone-модулем. Вы просто копируете код в общий модуль конфигурации и начинаете работу.

❓ Как сравнить два алгоритма на скорость?

Используйте функцию Compare. Запустите бенчмарк для старого кода, затем для нового. Передайте оба контекста в A1sBench.Compare(Контекст1, Контекст2), и система покажет разницу в миллисекундах и процентах.

v2.0.0 (Stable) Начните оптимизацию кода сегодня Скачайте A1sBench бесплатно. Лицензия MIT позволяет использовать модуль в коммерческих проектах без ограничений.