Поделиться через


Использование функций профилирования кода R для повышения производительности

Область применения: SQL Server 2016 (13.x) и более поздних версий

В этой статье описываются средства производительности, которые предоставляются пакетами R и позволяют получить сведения о внутренних вызовах функций. Такие сведения вы можете использовать для повышения производительности кода.

Совет

В этой статье приводятся основные ресурсы, которые помогут вам приступить к работе. Чтобы ознакомиться с рекомендациями экспертов, мы рекомендуем изучить раздел о производительностикниги Хедли Уикема (Hadley Wickham) "Advanced R", посвященной структурам данных R.

Использование RPROF

rprof — это функция, включенная в базовый пакет , который загружается по умолчанию.

Как правило, функция работает путем rprof записи стека вызовов в файл с заданными интервалами. Затем можно использовать функцию summaryRprof для обработки выходного файла. Одним из преимуществ rprof является то, что она выполняет выборку, что уменьшает нагрузку на производительность при мониторинге.

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

# Specify profiling output file.
varOutputFile <- "C:/TEMP/run001.log")
Rprof(varOutputFile)

# Turn off profiling
Rprof(NULL)
    
# Restart profiling
Rprof(append=TRUE)

Примечание.

Чтобы использовать эту функцию, установите Windows Perl на компьютер, где выполняется код. Таким образом, мы советуем выполнить профилирование кода во время его разработки в среде R, а затем развернуть отлаженный код в SQL Server.

Системные функции R

Язык R содержит множество базовых функций пакета для возврата содержимого системных переменных. Например, в качестве части кода R можно использовать Sys.timezone для получения сведений о текущем часовом поясе или Sys.Time для получения системного времени из R.

Чтобы получить сведения об отдельных системных функциях R, введите имя функции в качестве аргумента для функции R help() в командной строке R.

help("Sys.time")

Отладка и профилирование в R

Установленная по умолчанию документация по Microsoft R Open содержит подробное руководство по разработке расширений языка R, посвященное профилированию и отладке.

Следующие шаги