Глоссарий
Справочник терминов, которые встречаются в документации, в выводе команд и в полях результатов. Где у термина есть канонический источник (файл правил или каталог), он назван: документация пересказывает, правду хранит файл.
Метрика и оценка
| Термин | Что означает |
|---|---|
| SMOP | методика оценки по четырём независимым осям: Syntax, Meaning, Optimization, Platform. Главный результат бенчмарка это вектор из четырёх осей, а не одно число |
| Ось S (Синтаксис) | компилируется ли модуль. Вердикт даёт движок, который код исполняет: OneScript в категории A, компилятор 1С в категории B |
| Ось M (Смысл) | решает ли код поставленную задачу. Считается долей пройденных скрытых тестов |
| Ось O (Оптимальность) | как растёт цена решения с ростом входных данных. Меряется исполнением: число операций в категории A, число обращений к СУБД в категории B |
| Ось P (Платформа) | верно ли код обращается к объектам 1С: справочникам, регистрам, реквизитам, виртуальным таблицам. Применима только к категории B |
| Q (общий балл) | среднее по измеренным осям. Вторичная величина: публикуется только вместе с охватом |
| Охват осей | сколько осей из применимых к категории действительно измерено. Нужен потому, что Q усредняет только измеренное, и выпадение оси его поднимает |
| «Не измерено» (N/A) | проверка не состоялась: нет инструмента, сорвалось окружение, решение до проверки не добралось или ось закрыта гейтом. Отличается от нуля, который означает проваленную проверку |
| Корневая причина | одна ошибка компиляции с учётом кластеризации: соседние сообщения об одном месте считаются за одну причину |
| Потолок оси S | верхняя граница балла для модуля, который не собирается. Оценки выше потолка утверждали бы, что модуль компилируется |
| Конституция | metrics/smop.yaml: определение самих осей, шкала и правило общего балла. Отвечает на вопрос «что мы меряем» |
| Протокол | как из наблюдения получается балл. Их два на одну конституцию: smop_l1_auto.yaml для машины и smop_l2_expert.yaml для эксперта |
| Таксономия ошибок | metrics/error_taxonomy.yaml: маркеры платформенных ошибок, подклассы и поле вины. Списки лежат в данных, а не в коде скорера |
| Уровень L1 | автоматическая оценка: код запускается, балл выводится по протоколу L1 |
| Уровень L2 | экспертная оценка: те же оси ставит человек по протоколу L2 |
| Каппа Коэна | мера согласия двух оценщиков сверх случайного совпадения. Согласие L1 и L2 это главный научный результат проекта |
| Взвешенная каппа | вариант каппы, учитывающий, насколько далеко разошлись оценки. Нужна там, где машине доступны не все ступени шкалы |
Задачи
| Термин | Что означает |
|---|---|
| Категория A | алгоритмика на чистом BSL: расчёты, строки, коллекции, даты. Исполняется в OneScript, ось P неприменима |
| Категория B | платформенные задачи: запросы, регистры, метаданные. Исполняются в headless-1С против синтетической базы |
| Задача | самодостаточный каталог: условие плюс проверка. Состав зависит от категории, канонический список в prism check |
| Скрытые тесты | проверки, которых модель не видит: пары «на таком входе такой результат» |
Эталон (canonical.bsl) | корректное решение автора задачи. Обязано проходить свои тесты на 100%, иначе задача не принимается |
Якорь оси O (perf_baseline.bsl) | намеренно медленное, но корректное решение категории A. Доказывает, что ось O видит сложность задачи: эталон обязан получить высокий балл, якорь низкий |
Спецификация конфигурации (config_spec.yaml) | описание объектов метаданных, из которого собирается синтетическая база задачи |
Фикстуры (fixtures.yaml) | тестовые данные, которыми наполняется синтетическая база |
Профиль нагрузки (perf.yaml) | сценарий замера оси O: на каких размерах базы гонять решение |
| Точка входа | функция или процедура, которую харнесс вызывает в коде кандидата. Ищется по образцам из условия задачи |
| Задача-выброс | задача с аномально высокой долей нулевых баллов. Повод проверить сам стенд, прежде чем считать её трудной |
Прогон
| Термин | Что означает |
|---|---|
| Харнесс | код бенчмарка (harness/): генерация, исполнение, оценка, отчёты. Правил не содержит, читает их из данных |
| Кандидат | код, сгенерированный моделью для конкретной задачи |
| Прогон (эксперимент) | один заход «модели решают задачи»: results/experiment_*.json |
| Издание | профиль прогона: какие оси считаем и в каких условиях решала модель. Отвечает на вопрос «в каких условиях испытывали» |
| Адаптер | канал доступа к модели. Вендор и канал разведены: модель это факты в каталоге, канал это адаптер |
| Чекпойнт | частичный результат генерации, позволяющий продолжить прерванный прогон флагом --resume |
| Песочница | изолированный контейнер, в котором исполняется недоверенный код модели. Режим по умолчанию, на баллы не влияет |
| OneScript | движок исполнения BSL вне платформы 1С. Исполняет категорию A и даёт вердикт по оси S |
| BSL Language Server | статический анализатор BSL. В категории A оценивает тяжесть синтаксических проблем, но вердикт «собирается» не выносит: это парсер, а не компилятор |
| Headless-1С | платформа 1С, запущенная в контейнере без интерфейса. Исполняет категорию B |
| Технологический журнал | штатный лог платформы 1С. Используется дважды: как источник числа обращений к СУБД для оси O и как свидетельство того, что код вообще дошёл до данных |
| Бюджет процессорного времени | лимит на исполнение, считаемый процессорным, а не настенным временем. Благодаря этому балл не зависит от загрузки машины |
| Кэш сырых замеров | results/.measure_cache/: результаты прогонов, сложенные по содержимому входа. Служит и ускорением пересчёта, и хранилищем сырья |
| Артефакты прогона | логи 1С по конкретной записи, как они были: компиляция, тесты, загрузка базы. Достаются командой prism artifacts |
Результаты и публикация
| Термин | Что означает |
|---|---|
| Запись | одна пара «задача × модель» в файле оценок: баллы по осям, охват, детали измерения |
| Воронка отказов | разбор, на каком шаге рассыпались решения: от отсутствия кода до неверного ответа |
Вина (blame) | чей дефект привёл к результату: модели, задачи, харнесса или окружения. Нужна, чтобы инфраструктурный сбой не выглядел ошибкой модели |
| Снимок корпуса | замороженная копия оценок с контрольными суммами. База сравнения для аудита |
| Дрейф | построчная разница между текущими оценками и снимком: какие записи изменились и почему |
Гейт определения (prism check) | проверка того, что бенчмарк корректно задан: задачи, эталоны, контракты, инструменты |
Гейт результатов (prism audit) | проверка того, что полученные оценки не противоречат сами себе. Ничего не правит, только показывает |
compat_hash | отпечаток версии бенчмарка (метрика плюс набор задач). Гарантирует, что чужой прогон получен на той же версии и его числа сравнимы |
| Сабмишен | упакованный прогон для обмена: оценки плюс compat_hash |
| Лидерборд | сводный рейтинг моделей по прогону. Собирается из оценок, руками не пишется |
Дальше
- Как это работает — методика SMOP по существу.
- Архитектура — устройство данных, харнесса и результатов.
- Честные границы — что инструмент вправе утверждать, а что пока нет.
