【发布时间】:2012-02-20 05:09:07
【问题描述】:
对于某些网络服务,我需要尽可能加快按需 ggplot2 绘图。随着 memoise 的引入,绘图功能会自动引入一些缓存,使第二个绘图明显快于第一个绘图。然而,我的网络服务每个 R 会话只绘制 1 个绘图,因此默认情况下这没有帮助。
我想知道进行预缓存是否明智/可能/有用(例如,在实际请求之前在加载时进行一些计算),或者将 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 之前的 ggplot2 版本(pre-memoise ggplot2)。我希望这反映了您的意图,如果没有,请随时更改。
-
我很想知道您是否看到
memoise()ing 一些g <- ggplot()...函数带来的任何速度改进。我做了同样的事情(在一个会话中),但在绘图速度方面几乎没有任何改进。也许我做错了......
标签: r ggplot2 memoization cran