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

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

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

  • о быстродействии программы — сколько времени уходит на работу в целом и на конкретные действия;
  • об узких местах (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 % от времени профилирования, значок красный Красный значок огня.

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

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

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

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

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

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

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

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

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

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

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

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