#r #performance #optimization #packages
#r #Производительность #оптимизация #Упаковка
Вопрос:
Прежде всего, имеет ли использование библиотек какое-либо отношение к производительности вообще? Если да, то насколько велико влияние на производительность?
Контекст: я заметил, что разные пакеты содержат (очень) похожие функции. В принципе, я могу многое делать только с одной библиотекой, но я также могу импортировать разные библиотеки для выполнения одной и той же задачи. Я задаю этот вопрос, потому что хотел бы знать, влияет ли наличие нескольких пакетов или нескольких пакетов на производительность, чтобы я знал, должен ли я заботиться об оптимизации своей библиотеки или нет.
library(syuzhet)
library(lubridate)
library(plyr)
library("rjson")
library(compare)
...
Комментарии:
1. Этот вопрос слишком широкий. Могут быть любые различия в производительности, которые вы можете себе представить. Давайте подумаем о простом примере: sort-libA и sort-libB . Хотя оба могут сортировать ваши данные, A будет использовать сортировку слиянием, а B — сортировку пузырьками. В большинстве случаев вы заплатили бы высокую цену за использование B. Использование множества разных библиотек может окупиться, если для вашей проблемы существуют узкоспециализированные алгоритмические подходы. Но вам нужно внимательно ознакомиться с документами!
2. Чем больше
library
вызовов, тем больше.onLoad
.onAttach
вызовов /, и если пространства имен достаточно велики, а код инициализации в load / attach достаточно большой, вы получите первоначальный удар по производительности. После этого любая проблема с производительностью, вероятно, будет связана с плохо написанным кодом с вашей стороны или использованием неоптимизированной функции в одной из этих библиотек. Я использую много пакетов в своей повседневной работе без каких-либо побочных эффектов. Вам следует больше сосредоточиться на производительности вашего собственного кода.