Служба профилирования

Служба предназначена для профилирования и сбора покрытия кода, а также для получения значений счетчиков производительности.

Сведения о методах службы приведены в таблице ниже.

Методы службы profiler.Profiler (интерфейс kl.core.Profiler)

Метод

Назначение и параметры метода

Потенциальная опасность метода

GetCoverageData

Назначение

Позволяет получить сведения о покрытии кода.

Параметры

  • [in] index – индекс для перечисления объектных файлов, содержащих инструментированный код для получения сведений о покрытии. Нумерация начинается с нуля.
  • [out] buf – последовательность, содержащая сведения о покрытии кода объектного файла (в формате gcda).
  • [out] size – размер данных, содержащих сведения о покрытии кода объектного файла, в байтах.
  • [out] name – имя файла *.gcda, назначенное при компиляции.
  • [out] rc – код возврата.

Нет.

FlushGcov

Назначение

Выводит сведения о покрытии кода в формате gcda через UART.

Параметры

  • [out] rc – код возврата.

Нет.

FlushGcovFile

Назначение

Выводит сведения о покрытии кода в формате gcda через UART.

Параметры

  • [in] name – имя файла *.gcda, назначенное при компиляции.
  • [in] buf – указатель на буфер, содержащий сведения о покрытии кода в формате gcda.
  • [in] size – размер данных, содержащих сведения о покрытии кода.
  • [out] rc – код возврата.

Нет.

GetCounters

Назначение

Позволяет получить значения счетчиков производительности.

Параметры

  • [in] prefix – префикс для имен счетчиков производительности.
  • [in] names – последовательность, содержащая имена счетчиков производительности.
  • [out] values – последовательность, содержащая значения счетчиков производительности.
  • [out] rc – код возврата.

Нет.

ObjectGetStat

Назначение

Позволяет получить значения счетчиков производительности для системного ресурса (процесса или потока исполнения).

Параметры

  • [in] handle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует системный ресурс.
  • [in] names – последовательность, содержащая имена счетчиков производительности.
  • [out] values – последовательность, содержащая значения счетчиков производительности.
  • [out] rc – код возврата.

Нет.

SamplingStart

Назначение

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

Результатом семплирующего профилирования является статистика исполнения кода, которая отражает длительность исполнения участков кода.

Параметры

  • [in] conf – флаги, задающие параметры профилирования.
  • [in] cpus – значение, задающее процессоры (вычислительные ядра) для профилирования.
  • [in] contSize – размер контейнера для сохранения данных, содержащих статистику исполнения кода, полученную в результате профилирования, в байтах. Контейнер создается в памяти ядра автоматически.
  • [in] interval – фиктивный параметр.
  • [out] rc – код возврата.

Нет.

SamplingStop

Назначение

Останавливает семплирующее профилирование кода.

Параметры

  • [out] rc – код возврата.

Нет.

SamplingRead

Назначение

Позволяет получить данные, содержащие статистику исполнения кода, полученную в результате семплирующего профилирования.

Параметры

  • [in] unsafeBuffer – указатель на буфер для сохранения контейнера, содержащего статистику исполнения кода, полученную в результате профилирования.
  • [in] size – размер буфера, указатель на который задан через параметр unsafeBuffer.
  • [out] realSize – размер сохраненного контейнера.
  • [in] timeout – время ожидания заполнения контейнера в миллисекундах.
  • [out] rc – код возврата.

Позволяет получить адреса и имена функций других процессов.

SamplingAddPidToList

Назначение

Добавляет процесс в список профилируемых.

Параметры

  • [in] pid – идентификатор процесса (PID).
  • [out] rc – код возврата.

Нет.

SamplingClearPidList

Назначение

Очищает список профилируемых процессов.

Параметры

  • [out] rc – код возврата.

Нет.

LoadSegInfo

Назначение

Сохраняет в ядре сведения о загружаемом сегменте ELF-образа. (Это требуется, чтобы статистика исполнения кода, полученная в результате семплирующего профилирования, содержала дополнительную информацию, которая позволяет ассоциировать эту статистику с исходным кодом.)

Параметры

  • [in] task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс.
  • [in] addr – адрес сегмента в памяти процесса.
  • [in] size – размер сегмента в байтах.
  • [in] offset – смещение сегмента в файле ELF в байтах.
  • [in] flags – флаги, задающие права доступа к сегменту.
  • [in] buildId – идентификатор сборки. Компоновщик записывает этот идентификатор в файл ELF.
  • [out] rc – код возврата.

Позволяет исчерпать память ядра, создавая в ней множество объектов.

UnloadSegInfo

Назначение

Удаляет сведения о загружаемом сегменте ELF-образа, сохраненные в ядре методом LoadSegInfo.

Параметры

  • [in] task – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует процесс.
  • [in] addr – адрес сегмента в памяти процесса.
  • [in] size – размер сегмента в байтах.
  • [out] rc – код возврата.

Нет.

KcovAlloc

Назначение

Выделяет ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.

Параметры

  • [in] numThreads – максимальное число потоков исполнения, для которых будет выполняться сбор покрытия.
  • [in] maxPoints – максимальное число точек покрытия для одного потока исполнения.
  • [out] rc – код возврата.

Позволяет исчерпать оперативную память.

KcovFree

Назначение

Освобождает ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом.

Параметры

  • [out] rc – код возврата.

Нет.

KcovStart

Назначение

Запускает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения.

Параметры

  • [out] rc – код возврата.

Нет.

KcovStop

Назначение

Останавливает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения. Также позволяет получить сведения о покрытии кода ядра.

Параметры

  • [in] points – указатель на буфер для сохранения сведений о покрытии кода ядра.
  • [in] maxPoints – максимальное число точек покрытия, которые можно сохранить в буфере, заданном через параметр points.
  • [out] numPoints – фактическое число точек покрытия, сохраненных в буфере, заданном через параметр points.
  • [out] rc – код возврата.

Нет.

В начало