mirror of
https://github.com/dlang/dmd.git
synced 2025-04-27 21:51:03 +03:00
35 lines
1.6 KiB
R
35 lines
1.6 KiB
R
# Use `Rscript --vanilla plot.R old.csv new.csv` to run this script.
|
|
# It will read old.csv and new.csv files and create a comparison plot for them.
|
|
library(ggplot2)
|
|
library(dplyr)
|
|
library(tidyr)
|
|
|
|
dat <- NULL
|
|
args <- commandArgs(trailingOnly=T)
|
|
old <- read.csv(args[1]) %>% tbl_df()
|
|
new <- read.csv(args[2]) %>% tbl_df()
|
|
|
|
col.indices <- which(!colnames(new) %in% c("type", "op"))
|
|
|
|
# relative values
|
|
new[,col.indices] <- 100 * new[,col.indices] / old[,col.indices]
|
|
|
|
# arrange type factor levels
|
|
new$type <- factor(new$type, levels = c('byte', 'ubyte', 'short', 'ushort', 'int', 'uint', 'long', 'ulong', 'float', 'double'))
|
|
|
|
latencies <- gather(new %>% select(-starts_with('throughput')), num_elems, latency, starts_with('latency')) %>%
|
|
mutate(num_elems = factor(as.integer(sub("latency(\\d+)", "\\1", num_elems))))
|
|
throughputs <- gather(new %>% select(-starts_with('latency')), array_size, throughput, starts_with('throughput')) %>%
|
|
mutate(array_size = factor(as.integer(sub("throughput(\\d+)KB", "\\1", array_size))))
|
|
|
|
img <- ggplot(latencies, aes(x=num_elems, y=latency, fill=type)) +
|
|
geom_bar(position="dodge", stat="identity") +
|
|
facet_grid(op ~ ., scales="free_y") +
|
|
labs(x="num elements", y="relative latency / %")
|
|
ggsave('array_ops_latency.png', plot = img, width = 8, height = 40)
|
|
|
|
img <- ggplot(throughputs, aes(x=array_size, y=throughput, fill=type)) +
|
|
geom_bar(position="dodge", stat="identity") +
|
|
facet_grid(op ~ ., scales="free_y") +
|
|
labs(x="array size / KB", y="relative throughput / %")
|
|
ggsave('array_ops_throughput.png', plot = img, width = 8, height = 40)
|