Relative performance of geom_raster()
我有一个
这是一个玩具示例(但大小合适),使用
1 2 3 4 5 6 7 8 9 | n <- m <- 200 x <- 1:n y <- 1:m f <- function(x, y) 10 * sin(x / n) * cos(y / m) z <- outer(x, y, f) system.time(image(z)) user system elapsed 0.998 0.007 1.023 |
这里是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | obs <- expand.grid(x=x, y=y) obs$z <- as.numeric(as.list(z)) require(ggplot2) p <- ggplot(obs, aes(x=x, y=y, fill=z)) system.time(show(p + geom_tile())) user system elapsed 7.328 0.891 8.187 require(ggExtra) system.time(show(p + geom_raster())) user system elapsed 7.000 0.637 7.799 |
因此,收益适中,但与我的预期相去甚远。我做错了吗?提前非常感谢!
您应该使用最新版本
这样做,我得到了更好的结果,即4.705与1.416(已过去)。很大的进步。
编辑:事实证明,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | benchplot(base + geom_raster()) step user.self sys.self elapsed 1 construct 0.006 0.004 0.010 2 build 0.887 0.212 1.109 3 render 0.449 0.119 0.584 4 draw 0.108 0.005 0.141 5 TOTAL 1.450 0.340 1.844 > benchplot(base + geom_tile()) step user.self sys.self elapsed 1 construct 0.016 0.005 0.026 2 build 1.031 0.329 1.365 3 render 1.021 0.297 1.318 4 draw 0.987 0.041 1.040 5 TOTAL 3.055 0.672 3.749 |