Профилирование
Профилирование производительности приложения — это процесс анализа и измерения различных аспектов производительности программы с целью выявления проблемных мест, оптимизации использования ресурсов и повышения общей эффективности и стабильности. С помощью профилирования можно узнать:
- о быстродействии программы — сколько времени уходит на работу в целом и на конкретные действия;
- об узких местах (bottleneck, «бутылочных горлышках») — участках кода, где программа работает медленнее всего;
- о количестве вызовов каждого метода и о том, какие из них вызываются чаще всего.
Запуск профилирования
Профилирование можно запустить двумя способами:
- сначала запустить отладку, а затем профилирование;
- запустить профилирование вместе с отладкой.
Выполнив необходимые действия, необходимо сначала остановить профилирование и только потом завершить сеанс отладки. Результаты профилирования сохранятся в JSON-файл.
Если завершить сеанс отладки, но не остановить профилирование, файл результатов профилирования удалится после завершения сессии отладки. Таким образом, результаты профилирования собраны не будут.
Запуск профилирования во время отладки
Чтобы запустить профилирование, выполните следующие действия:
-
Нажмите Ctrl+Shift+P ⟶ Запустить профилирование или в представлении Отладка среды разработки нажмите на кнопку запуска профилирования:
-
Перейдите к приложению и выполните все действия, производительность которых вы хотите измерить.
-
Нажмите Ctrl+Shift+P ⟶ Остановить профилирование или в представлении Отладка среды разработки нажмите на кнопку остановки профилирования:
-
Дождитесь сохранения файла с результатами профилирования:

-
Остановите отладку.
Запуск профилирования вместе с отладкой
-
На вкладке Отладка нажмите на значок шестеренки, чтобы открыть файл launch.json, описывающий конфигурацию запуска.
-
Установите в нем свойство
"startProfiling": true:{
"version": "0.2.0",
"configurations": [
{
"name": "\"1C:Enterprise.Element\" Debugger",
"type": "xbsl",
"request": "attach",
"stopOnEntry": false,
"stopOnAllExceptions": false,
"endSessionIfClientDisconnected": true,
"startProfiling": true
}
]
} -
Запустите отладку.
-
Перейдите к приложению и выполните все действия, производительность которых вы хотите измерить.
-
Нажмите Ctrl+Shift+P ⟶ Остановить профилирование или в представлении Отладка среды разработки нажмите на кнопку остановки профилирования:
-
Дождитесь сохранения файла с результатами профилирования:

-
Остановите отладку.
Действия с файлом результата
Все файлы с результатами измерений производительности отображаются в панели Результаты профилирования:

Файлы результатов можно:
- экспортировать в JSON-файл:
- кликните правой кнопкой мыши на нужный файл,
- выберите команду Экспортировать файл,
- сохраните его;
- импортировать из JSON-файла:
- наведите курсор на заголовок панел и Результаты профилирования и нажмите на знак плюса,
- выберите нужный файл,
- нажмите Открыть, после чего файл отобразится в списке файлов с результатами профилирования;
- удалять:
- кликните правой кнопкой мыши на нужный файл,
- выберите команду Удалить и подтвердите удаление;
- переименовывать:
- кликните правой кнопкой мыши на нужный файл,
- выберите команду Переименовать,
- введите новое название файла и нажмите Enter.
Редактор результатов профилирования
Кликните на файл, чтобы открыть его в редакторе результатов профилирования в рабочей области среды разработки:

Заголовок
В заголовке окна редактора результатов отображаются следующие данные:
- время запуска профилирования в часовом поясе среды разработки, в которой было запущено профилирование;
- время работы профилирования — суммарное время выполнения всех методов приложения, выполнявшихся между началом и окончанием профилирования;
- число долго выполнявшихся методов, время выполнения которых заняло более 15 % времени профилирования.
Настройки редактора
Нажмите на значок шестеренки в правом верхнем углу редактора, чтобы открыть окно настроек. В нем вы можете задать формат отображения пространства имен и подсистем:
- Полное — отображаются и пространство имен, и подсистема;
- Краткое — отображается подсистема;
- Не отображать — пространство имен и подсистема не отображаются.

Список методов
Список методов представляет собой таблицу, которая показывает агрегированную информацию по каждому из методов приложения:
- сигнатуру метода;
- количество вызовов метода;
- абсолютное время выполнения метода (с);
- относительное время выполнения метода (%).
Специальным значком выделяются долго выполняющиеся методы. Если метод выполняется больше 15 % и меньше 90 % от времени профилирования, значок оранжевый . Если метод выполняется больше 90 % от времени профилирования, значок красный
.
Вы можете отсортировать таблицу по какой-либо колонке. Для этого кликните на заголовок колонки, по которой необходимо выполнить сортировку.
Чтобы посмотреть, откуда вызывался метод, кликните на него. Откроется таблица вызовов:

Сортировка в таблице вызовов не поддерживается.
Дерево вызовов
В дереве вызовов отображается иерархия вызова методов приложения и информация о каждом из них:
- сигнатура метода;
- количество вызовов метода;
- абсолютное время выполнения метода (с);
- относительное время выполнения метода (%).

Серым шрифтом отображаются методы, принадлежащие пространству Стд. Для остальных методов вы можете:
-
перейти к месту вызова метода — для этого кликните на синий значок справа:

-
перейти к коду тела метода — кликните на сигнатуру метода. Редактор кода откроется на строке, с которой начинается тело метода.