Для некоторых веб-сервисов мне нужно максимально ускорить графики ggplot2 по запросу. С введением memoise в функции построения графиков автоматически вводится некоторое кэширование, что делает второй график значительно быстрее, чем первый. Однако мой веб-сервис рисует только 1 график за сеанс R, поэтому по умолчанию это не помогает.
Мне было интересно, будет ли разумно/возможно/полезно выполнять предварительное кэширование (например, выполнять некоторые вычисления при загрузке перед фактическим запросом) или сохранять/загружать кеши memoise на диск для общих вызовов + вывода.
Пример:
> library(ggplot2);
> pdf(tempfile());
> system.time(print(qplot(speed, dist, color=speed, data=cars, geom=c("point", "smooth"))));
user system elapsed
0.496 0.008 0.512
> system.time(print(qplot(speed, dist, color=speed, data=cars, geom=c("point", "smooth"))));
user system elapsed
0.312 0.004 0.322
memoise()
выполнив некоторыеg <- ggplot()...
функции. Я сделал то же самое (в пределах одного сеанса), но почти не заметил улучшения в скорости печати. Может я неправильно делаю... - person maxheld   schedule 17.07.2015