對於某些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