неожиданные результаты :микробенчмарк

Меня всегда немного беспокоила неточность. Я вижу бенчмаркинг с system.timeиrbenchmark(в том, что точность синхронизации может отсутствовать )и недавно видел, как Хэдли ссылался на пакет microbenchmark. Поэтому я решил дать ему вихрь, как показано ниже. Я сравнил meanс f <- function(x) {sum(x)/length(x)}и ожидал, что meanбудет намного лучше, чем f, но результаты, как я их понимаю, не указывают на то, что это правда.

  1. Я неправильно понимаю результаты?
  2. Действительно ли f быстрее среднего?
  3. Микробенчмарк все еще находится в стадии бета-тестирования, и его нужно сгладить? вне?

Я запускаю 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)
9
задан Tyler Rinker 28 April 2012 в 15:50
поделиться