Текущие варианты замера производительности имеют свои "особенности"
- Популярные тесты "гилев" и fragster создают свою тестовую базу, создавая более - менее полноценную нагрузку и позволяет сравнить производительность с другими - но не дает мало информации, где конкретно узкое место.
- Замеры типа "нагрузочный тест" показывают, сколько пользователей "выдержит" система, но не дает сравнения с другими системами и также не показывает узкие места.
- Замеры типа "апдекс" показывают достаточно странные данные - потому что даже один тип документа содержит разные данные как по типу, так и по количеству строк. И говорить, что система стала быстрее или медленнее, когда у всех разные права, разное количество документов, особенно в конце года, пользователей, и постоянно меняется конфигурация, по-моему, бессмысленно...
Первые два варианта при их достоинствах - изменяют производительность специальной тестовой базы. Которая может отличаться от рабочей настройками как на sql, так и режим совместимости 1С и тп.
В данном варианте режим замеров - достаточно простой - долгий запрос и простые циклы. Понятно, очевидно и работает. И запускается на реальной рабочей базе и показывает именно в ней скорость работы.
В будущем возможно усложню.
Как пользоваться и интерпретировать результаты.
Данная обработка позволяет в целевой рабочей базе запустить замер производительности.
Покажет индекс производительности клиента, сервера 1С и скуля и обмена между ними.
При этом подойдет практически любая конфигурация на управляемых формах в максимально широком диапазоне совместимостей. Никакие БСП не используются и нет требований к объектам.
Данные БД не используются, не меняются, поэтому она безопасна для запуска и не требует особых прав.
В обработке две кнопки - Запустить и Отчет. Параметры только для отладки.
Сравнить разные сервера - и увидеть что они одинаковые или один быстрее и в каком именно тесте и разбираться почему.
Тест
С одной стороны относительный - каждый элемент примерно отнормирован к 100 "баллам" и общий итог - среднее по всем тестам тоже "стремиться к 100". Новые тесты так же будут отнормированы, но на общий результат будут влиять не увеличением итого, а большей детализацией.
С другой стороны, есть колонка "Длительность мс" - где наглядно видна разница в организации циклов и затраты времени на вызовы функций клиента и сервера...
Пример работы теста и что делать с этими результатами и моим мнением.
Как раз на что обратить внимание при разработке своего кода для производительности
| Описание | Параметр | Значение | ДлительностьМс |
| Долгий Запрос На SQL Сервере | 60 | 2 514 | |
| Скорость передачи данных с сервер скуль на сервер 1С | 74 | 4 085 | |
| Скорость клиента итерации/цикл | 88 | 1 134 | |
| Скорость клиента цикл/итерации | 90 | 1 117 | |
| Странно что большой цикл дольше двух вложенных | Скорость клиента за один проход | 83 | 1 211 |
| Затраты на подготовку к "выполнить" | Скорость клиента через выполнить | 67 | 1 491 |
| Скорость создания реквизитов и элементов формы | 90 | 11 052 | |
| Скорость перемещения элементов формы | 60 | 16 722 | |
| Скорость клиента заполнения массива и ТЧ | 83 | 12 090 | |
| Скорость передачи данных между клиентом и сервером | 102 | 19 453 | |
| Скорость открытия формы | 211 | 4 743 | |
| Вызов сервера из клиента в 50*100 раз тормозит работу! | Скорость сервера итерации/цикл** | 210 | 24 033 |
| Вызов сервера затормаживает процесс | Скорость сервера цикл/итерации | 84 | 11 873 |
| Все равно в 6 раз дольше чем клиент | Скорость сервера за один проход | 57 | 8 802 |
| Неожиданно- тот же код, так же вызов сервера, но почти в 2 раза быстрее чем просто кода на сервере | Скорость сервера через выполнить | 96 | 5 241 |
| В 100 раз быстрее чем с контекстом, но все равно в 50 раз медленнее чем просто клиент | Скорость сервера без контекста итерации/цикл | 115 | 43 654 |
| Скорость сервера без контекста цикл/итерации | 55 | 9 179 | |
| Скорость сервера без контекста за один проход | 56 | 9 011 | |
| Неожиданно- тот же код, так же вызов сервера, но почти в 2 раза быстрее чем просто кода на сервере | Скорость сервера без контекста через выполнить | 93 | 5 397 |
Протестирована на платформе 8.3.25.1501. 8.3.27.1936 , 8.5.1.1236
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом КОРП, редакция 3.1, релизы 3.1.32.39
- 1С:ERP Управление предприятием 2, релизы 2.5.22.67
- 1С:Управление холдингом 3.2 (русский и английский интерфейсы), релизы 3.2.10.27
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.176.38
- Документооборот КОРП, релизы 2.1.36.3
- Документооборот КОРП, редакция 3.0, релизы 3.0.17.36
- Комплексная автоматизация, редакция 1.1, релизы 3.1.9.188
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.392
- Управление торговлей, редакция 11, релизы 11.5.25.85
Вступайте в нашу телеграмм-группу Инфостарт