W przypadku niektórych usług internetowych muszę przyspieszyć działania na wykresach ggplot2 w miarę możliwości. Wraz z wprowadzeniem memoise, buforowanie jest automatycznie wprowadzane do funkcji kreślenia, dzięki czemu drugi wykres jest znacznie szybszy niż pierwszy. Jednak moja usługa internetowa rysuje tylko 1 działkę na sesję R, więc to nie pomaga domyślnie.Wstępne buforowanie danych wyjściowych ggplot2 przy użyciu memoise do użytku w serwisie WWW
Zastanawiam się, czy byłoby rozsądnie/możliwe/użyteczne wykonanie precaching (np. Wykonanie niektórych obliczeń onload, przed faktycznym żądaniem) lub zapisanie/załadowanie pamięci podręcznych memorial na dysk dla wspólnych wywołań + danych wyjściowych.
Przykład:
> 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
Edytowałem twój tytuł, interpretowałem go tak, jakbyś szukał wersji ggplot2, która była wcześniejsza niż czas, w którym używałeś memoise (pre-memoise ggplot2). Mam nadzieję, że to odzwierciedla twoją intencję i możesz je zmienić, jeśli nie. –
Ciekawi mnie, czy zauważyłeś jakąkolwiek poprawę prędkości dzięki 'memoise()' jakiejś funkcji 'g <- ggplot() ...'. Zrobiłem to samo (* w ciągu * jednej sesji), ale prawie nie zauważyłem żadnej poprawy szybkości kreślenia. Może robię to źle ... – maxheld