Перейти к основному содержимому

Профилирование

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

  • о быстродействии программы — сколько времени уходит на работу в целом и на конкретные действия;
  • об узких местах (bottleneck, «бутылочных горлышках») — участках кода, где программа работает медленнее всего;
  • о количестве вызовов каждого метода и о том, какие из них вызываются чаще всего.

Запуск профилирования

Профилирование можно запустить двумя способами:

  • сначала запустить отладку, а затем профилирование;
  • запустить профилирование вместе с отладкой.

Выполнив необходимые действия, необходимо сначала остановить профилирование и только потом завершить сеанс отладки. Результаты профилирования сохранятся в JSON-файл.

важно

Если завершить сеанс отладки, но не остановить профилирование, файл результатов профилирования удалится после завершения сессии отладки. Таким образом, результаты профилирования собраны не будут.

Запуск профилирования во время отладки

Чтобы запустить профилирование, выполните следующие действия:

  1. Запустите отладку.

  2. Нажмите Ctrl+Shift+PЗапустить профилирование или в представлении Отладка среды разработки нажмите на кнопку запуска профилирования:

    Кнопка запуска профилирования в представлении «Отладка»

  3. Перейдите к приложению и выполните все действия, производительность которых вы хотите измерить.

  4. Нажмите Ctrl+Shift+PОстановить профилирование или в представлении Отладка среды разработки нажмите на кнопку остановки профилирования:

    Кнопка остановки профилирования в представлении «Отладка»

  5. Дождитесь сохранения файла с результатами профилирования:

    Сохранение файла с результатами после остановки профилирования

  6. Остановите отладку.

Запуск профилирования вместе с отладкой

  1. На вкладке Отладка нажмите на значок шестеренки, чтобы открыть файл launch.json, описывающий конфигурацию запуска.

  2. Установите в нем свойство "startProfiling": true:

    {
    "version": "0.2.0",
    "configurations": [
    {
    "name": "\"1C:Enterprise.Element\" Debugger",
    "type": "xbsl",
    "request": "attach",
    "stopOnEntry": false,
    "stopOnAllExceptions": false,
    "endSessionIfClientDisconnected": true,
    "startProfiling": true
    }
    ]
    }
  3. Запустите отладку.

  4. Перейдите к приложению и выполните все действия, производительность которых вы хотите измерить.

  5. Нажмите Ctrl+Shift+PОстановить профилирование или в представлении Отладка среды разработки нажмите на кнопку остановки профилирования:

    Кнопка остановки профилирования в представлении «Отладка»

  6. Дождитесь сохранения файла с результатами профилирования:

    Сохранение файла с результатами после остановки профилирования

  7. Остановите отладку.

Действия с файлом результата

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

Список файлов с результатами профилирования на вкладке «Результаты профилирования»

Файлы результатов можно:

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

Редактор результатов профилирования

Кликните на файл, чтобы открыть его в редакторе результатов профилирования в рабочей области среды разработки:

Окно редактора результатов профилирования

Заголовок

В заголовке окна редактора результатов отображаются следующие данные:

  • время запуска профилирования в часовом поясе среды разработки, в которой было запущено профилирование;
  • время работы профилирования — суммарное время выполнения всех методов приложения, выполнявшихся между началом и окончанием профилирования;
  • число долго выполнявшихся методов, время выполнения которых заняло более 15 % времени профилирования.

Настройки редактора

Нажмите на значок шестеренки в правом верхнем углу редактора, чтобы открыть окно настроек. В нем вы можете задать формат отображения пространства имен и подсистем:

  • Полное — отображаются и пространство имен, и подсистема;
  • Краткое — отображается подсистема;
  • Не отображать — пространство имен и подсистема не отображаются.

Настройки редактора результатов профилирования

Список методов

Список методов представляет собой таблицу, которая показывает агрегированную информацию по каждому из методов приложения:

  • сигнатуру метода;
  • количество вызовов метода;
  • абсолютное время выполнения метода (с);
  • относительное время выполнения метода (%).

Специальным значком выделяются долго выполняющиеся методы. Если метод выполняется больше 15 % и меньше 90 % от времени профилирования, значок оранжевый Оранжевый значок огня. Если метод выполняется больше 90 % от времени профилирования, значок красный Красный значок огня.

Вы можете отсортировать таблицу по какой-либо колонке. Для этого кликните на заголовок колонки, по которой необходимо выполнить сортировку.

Чтобы посмотреть, откуда вызывался метод, кликните на него. Откроется таблица вызовов:

Таблица, которая показывает все места вызова метода

Сортировка в таблице вызовов не поддерживается.

Дерево вызовов

В дереве вызовов отображается иерархия вызова методов приложения и информация о каждом из них:

  • сигнатура метода;
  • количество вызовов метода;
  • абсолютное время выполнения метода (с);
  • относительное время выполнения метода (%).

Дерево вызовов

Серым шрифтом отображаются методы, принадлежащие пространству Стд. Для остальных методов вы можете:

  • перейти к месту вызова метода — для этого кликните на синий значок справа:

    Синий значок для перехода к месту вызова метода

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