对于某些Web服务,我需要尽可能地加速按需ggplot2绘图。随着memoise的引入,一些缓存会自动引入到绘图函数中,使第二个绘图比第一个绘图快得多。但是,我的Web服务仅在每个R会话中绘制一个绘图,所以这在默认情况下不起作用。使用memoise预先缓存ggplot2输出以用于Web服务
我想知道是否明智/可能/有用的做preaching(例如,做一些计算onload,实际请求之前),或保存/加载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
我编辑了你的标题,我把它解释为你在哪里寻找一个ggplot2版本,它是在它使用memoise(pre-memoise ggplot2)之前的版本。我希望这反映了你的意图,如果不是,请随时更改。 – 2012-01-27 08:48:13
我很好奇你是否看到过''memoise()'g < - ggplot()...'函数带来的速度提升。我做了同样的事情(*在一个会话中),但在绘图速度方面几乎没有任何改进。 也许我做错了...... – maxheld 2015-07-17 14:34:59