Skip to content

Instantly share code, notes, and snippets.

@SteveBronder
Last active April 10, 2020 22:07
Show Gist options
  • Save SteveBronder/e3b0dd17d2651b9889d599e2222c19b7 to your computer and use it in GitHub Desktop.
Save SteveBronder/e3b0dd17d2651b9889d599e2222c19b7 to your computer and use it in GitHub Desktop.
benchmark size stat time cpu iters
multi_init_var_vec 128 mean 644 ns 644 ns 30
multi_init_var_vec 128 median 622 ns 622 ns 30
multi_init_var_vec 128 stddev 64.0 ns 64.0 ns 30
multi_init_var_vec 256 mean 1468 ns 1468 ns 30
multi_init_var_vec 256 median 1493 ns 1493 ns 30
multi_init_var_vec 256 stddev 49.4 ns 49.4 ns 30
multi_init_var_vec 512 mean 2705 ns 2705 ns 30
multi_init_var_vec 512 median 2711 ns 2710 ns 30
multi_init_var_vec 512 stddev 18.9 ns 18.9 ns 30
multi_init_var_vec 1024 mean 5273 ns 5273 ns 30
multi_init_var_vec 1024 median 5278 ns 5277 ns 30
multi_init_var_vec 1024 stddev 18.7 ns 18.6 ns 30
multi_init_var_vec 2048 mean 10395 ns 10393 ns 30
multi_init_var_vec 2048 median 10395 ns 10393 ns 30
multi_init_var_vec 2048 stddev 41.3 ns 41.3 ns 30
multi_init_var_vec 4096 mean 20778 ns 20775 ns 30
multi_init_var_vec 4096 median 20781 ns 20778 ns 30
multi_init_var_vec 4096 stddev 52.3 ns 52.5 ns 30
multi_init_var_vec 8192 mean 41455 ns 41450 ns 30
multi_init_var_vec 8192 median 41424 ns 41419 ns 30
multi_init_var_vec 8192 stddev 175 ns 176 ns 30
single_init_var_vec 128 mean 676 ns 676 ns 30
single_init_var_vec 128 median 704 ns 704 ns 30
single_init_var_vec 128 stddev 62.5 ns 62.5 ns 30
single_init_var_vec 256 mean 1368 ns 1368 ns 30
single_init_var_vec 256 median 1403 ns 1403 ns 30
single_init_var_vec 256 stddev 88.5 ns 88.5 ns 30
single_init_var_vec 512 mean 2586 ns 2586 ns 30
single_init_var_vec 512 median 2589 ns 2588 ns 30
single_init_var_vec 512 stddev 21.6 ns 21.5 ns 30
single_init_var_vec 1024 mean 5133 ns 5133 ns 30
single_init_var_vec 1024 median 5123 ns 5122 ns 30
single_init_var_vec 1024 stddev 31.4 ns 31.4 ns 30
single_init_var_vec 2048 mean 10194 ns 10192 ns 30
single_init_var_vec 2048 median 10167 ns 10166 ns 30
single_init_var_vec 2048 stddev 63.4 ns 63.3 ns 30
single_init_var_vec 4096 mean 20313 ns 20311 ns 30
single_init_var_vec 4096 median 20301 ns 20298 ns 30
single_init_var_vec 4096 stddev 42.9 ns 43.0 ns 30
single_init_var_vec 8192 mean 36328 ns 36324 ns 30
single_init_var_vec 8192 median 34564 ns 34559 ns 30
single_init_var_vec 8192 stddev 2643 ns 2643 ns 30
multi_init_double_vec 128 mean 356 ns 356 ns 30
multi_init_double_vec 128 median 359 ns 359 ns 30
multi_init_double_vec 128 stddev 7.90 ns 7.90 ns 30
multi_init_double_vec 256 mean 710 ns 710 ns 30
multi_init_double_vec 256 median 710 ns 710 ns 30
multi_init_double_vec 256 stddev 5.74 ns 5.75 ns 30
multi_init_double_vec 512 mean 1282 ns 1282 ns 30
multi_init_double_vec 512 median 1281 ns 1281 ns 30
multi_init_double_vec 512 stddev 5.44 ns 5.44 ns 30
multi_init_double_vec 1024 mean 2401 ns 2401 ns 30
multi_init_double_vec 1024 median 2397 ns 2397 ns 30
multi_init_double_vec 1024 stddev 17.4 ns 17.4 ns 30
multi_init_double_vec 2048 mean 4697 ns 4697 ns 30
multi_init_double_vec 2048 median 4686 ns 4685 ns 30
multi_init_double_vec 2048 stddev 36.6 ns 36.6 ns 30
multi_init_double_vec 4096 mean 9436 ns 9435 ns 30
multi_init_double_vec 4096 median 9439 ns 9438 ns 30
multi_init_double_vec 4096 stddev 66.9 ns 66.9 ns 30
multi_init_double_vec 8192 mean 18844 ns 18842 ns 30
multi_init_double_vec 8192 median 18609 ns 18607 ns 30
multi_init_double_vec 8192 stddev 578 ns 578 ns 30
single_init_double_vec 128 mean 334 ns 334 ns 30
single_init_double_vec 128 median 332 ns 332 ns 30
single_init_double_vec 128 stddev 8.77 ns 8.76 ns 30
single_init_double_vec 256 mean 625 ns 625 ns 30
single_init_double_vec 256 median 630 ns 630 ns 30
single_init_double_vec 256 stddev 20.4 ns 20.4 ns 30
single_init_double_vec 512 mean 1178 ns 1178 ns 30
single_init_double_vec 512 median 1172 ns 1172 ns 30
single_init_double_vec 512 stddev 19.8 ns 19.7 ns 30
single_init_double_vec 1024 mean 2284 ns 2284 ns 30
single_init_double_vec 1024 median 2283 ns 2283 ns 30
single_init_double_vec 1024 stddev 27.1 ns 27.1 ns 30
single_init_double_vec 2048 mean 4476 ns 4475 ns 30
single_init_double_vec 2048 median 4481 ns 4480 ns 30
single_init_double_vec 2048 stddev 61.7 ns 61.7 ns 30
single_init_double_vec 4096 mean 8912 ns 8911 ns 30
single_init_double_vec 4096 median 8885 ns 8883 ns 30
single_init_double_vec 4096 stddev 147 ns 147 ns 30
single_init_double_vec 8192 mean 17612 ns 17611 ns 30
single_init_double_vec 8192 median 17568 ns 17567 ns 30
single_init_double_vec 8192 stddev 240 ns 240 ns 30
library(data.table)
library(ggplot2)
full_dt = fread("./init_test.csv")
full_dt[, time := as.numeric(gsub("ns", "", time))]
full_dt[, cpu := as.numeric(gsub("ns", "", cpu))]
full_dt[grepl("var", benchmark), type := "var"]
full_dt[!grepl("var", benchmark), type := "double"]
full_dt[grepl("single", benchmark), bench := "single"]
full_dt[grepl("multi", benchmark), bench := "multi"]
ggplot(full_dt[stat == "mean"], aes(x = size, y = log(cpu), color = bench)) +
geom_line() +
facet_wrap(~type)
ggplot(full_dt[stat == "mean"], aes(x = log(size), y = log(cpu), color = bench)) +
geom_line() +
facet_wrap(~type)
full_cast_dt = dcast(full_dt, size + type ~ stat + bench, value.var = "cpu")
full_cast_dt[, perf := 1 - mean_single/mean_multi]
full_cast_dt[, perf_top := 1 - (mean_single + stddev_single) / (mean_multi + stddev_multi)]
full_cast_dt[, perf_bottom := 1 - (mean_single - stddev_single) / (mean_multi - stddev_multi)]
ggplot(full_cast_dt, aes(x = size)) +
geom_ribbon(aes(ymin = perf_bottom, ymax = perf_top), fill = "grey50") +
geom_line(aes(y = perf)) +
facet_wrap(~type, nrow = 2, ncol = 1) +
theme_bw() +
geom_hline(yintercept = 0) +
ylab("") +
xlab("Vector Size") +
ggtitle("Performance of Current Vs. New Initialization", "Perf is 1 - (new / current). Ribbon is +/- stddev")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment