Для некоторых веб-сервисов мне нужно максимально ускорить графики ggplot2. С введением памятки в функции построения графиков автоматически вводится некоторое кэширование, благодаря чему второй график значительно быстрее первого. Однако мой веб-сервис рисует только 1 график за сеанс R, так что по умолчанию это не помогает.
Мне было интересно, было бы разумно / возможно / полезно выполнить предварительное кэширование (например, выполнить некоторые вычисления при загрузке до фактического запроса) или сохранить / загрузить кеши памяти на диск для общих вызовов + вывода.
Пример:
> 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