2012-01-27 15 views
5

Bazı web servisleri için ggplot2 taleplerini olabildiğince hızlandırmam gerekiyor. Memoise tanıtımı ile, önbellekleme fonksiyonlarına bazı önbellekler otomatik olarak eklenir ve ikinci arsa ilkinden önemli ölçüde daha hızlı yapılır. Ancak, web servisim sadece R oturumu başına 1 çizim çiziyor, bu nedenle varsayılan olarak yardımcı olmuyor.Web servisinde kullanılmak üzere notları kullanarak ggplot2 çıktısını önbelleğe alma

Önbellekleme yapmanın akıllıca/olası/kullanışlı olup olmayacağını merak ettim (örn., Gerçek talepten önce bazı yükler hesaplanırken) veya genel çağrılar için diskete önbellekleri kaydet/yükle.

Bir örnek:

> 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 
+0

Başlığınızı düzenledim, bunu, hatırlatma kullanılmadan önceki bir ggplot2 sürümünü (ön bellek ggplot2) aradığınız yer olarak yorumladım. Umarım bu, niyetinizi yansıtır ve eğer olmasa bile onu değiştirmekte özgürsünüz. –

+0

Bazı 'g <- ggplot() ... 'işlevini kullanarak memoise() ile herhangi bir hız gelişimini görüp görmediğinizi merak ediyorum. Aynı şeyi yaptım (* bir oturumda), ancak çizim hızındaki herhangi bir gelişme görülmedi. Belki de yanlış yapıyorum… – maxheld

cevap

4

AFAIK, memoise paket yalnızca oturum çerçevesinde önbelleği destekler. Bir R oturumu bırakırsanız, önbelleği kaybedersiniz. cacheSweave/knitr modelinin web servisinize yardımcı olup olmadığından emin değilim, ancak önbelleğe alınan sonuçları bu iki paket gibi diske yazmanız gerektiğine inanıyorum. Aynı kod çalıştırılırsa (MD5 ile doğrulayın), önbelleği yüklemeniz yeterlidir. Sorunu daha iyi tanımam için bir örnek verebilirsiniz.

+0

[memoise] [geliştirme sürümü] (https://github.com/hadley/memoise/releases) şimdi 'cache_filesystem' seçeneği ile kalıcı önbelleğe sahiptir. –

İlgili konular