Меня всегда немного беспокоила неточность. Я вижу бенчмаркинг с system.time
иrbenchmark
(в том, что точность синхронизации может отсутствовать )и недавно видел, как Хэдли ссылался на пакет microbenchmark
. Поэтому я решил дать ему вихрь, как показано ниже. Я сравнил mean
с f <- function(x) {sum(x)/length(x)}
и ожидал, что mean
будет намного лучше, чем f
, но результаты, как я их понимаю, не указывают на то, что это правда.
Я запускаю R2.15 на машине с Win 7 (, так как microbenchmark определяет время по-разному в зависимости от вашей ОС ).
Результаты
Unit: microseconds
expr min lq median uq max
1 f(x) 19.130 20.529 20.529 20.996 286.00
2 mean(x) 28.927 29.860 30.327 30.327 672.31
Код
library(microbenchmark)
x <- 1:10000
f <- function(x) {sum(x)/length(x)}
mean(x)
res <- microbenchmark(
mean(x),
f(x),
times=1000L)
print(res)
boxplot(res)