Измерение времени выполнения кода в R

Порой возникает необходимость оценить время выполнения скрипта, функции или участка кода с целью оптимизации или выявления «узких» мест. Это сообщение посвящено обзору инструментов измерения производительности R-кода.

Для измерения времени выполнения выражений (производительности кода) в R существуют следующие инструменты:

  • Функция system.time() из пакета base;
  • Cпециализированные…

Конвейеры и цепочки команд в R: пакет magrittr

Разработчики пакета magrittr ставили перед собой следующие цели: сократить время разработки и сделать код более читаемым и лёгким в сопровождении. Мотивами для создания пакета послужили оператор |> в языке F# и конвейеры (pipes) в unix-подобных операционных…

Парсим HTML и скачиваем файлы с подстраниц сайта

Недавно мне попалась книга «Applied Multivariate Statistical Analysis» за авторством Wolfgang K. Härdle, Léopold Simar. В книге приводится множество примеров кода со ссылками на данные. Но ни файлов с кодом. ни с данными у меня не оказалось. В самом начале книги я обнаружил следующий абзац, который вроде бы содержит ответ на мой вопрос, но всё оказалось не так просто. Итак читаем:

The…

Повышение производительности путём компиляции в байт-код

В данном материале рассматривается один из способов ускорения выполнения кода путём компиляции выражений, функций и скриптов R в байт-код. Байт-код - машинно-независимый код низкого уровня, генерируемый транслятором и исполняемый интерпретатором. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Трансляция…

Оптимизируем циклы

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

  • предварительное создание результирующей переменной с указанием типа и размера;
  • замена цикла на функции, поддерживающие работу с векторами или списками;
  • вынесение операций из тела цикла;
  • компиляция цикла в байт-код;
  • параллелизация…