R:bench::mark 不是 return 最大值和平均值
R: bench::mark does not return max and mean
考虑以下示例
res <- bench::mark(rnorm(1e5))
names(res)
#> [1] "expression" "min" "median" "itr/sec" "mem_alloc"
#> [6] "gc/sec" "n_itr" "n_gc" "total_time" "result"
#> [11] "memory" "time" "gc"
我有点困惑,不包括平均运行时间和最大运行时间,这与帮助页面相矛盾。 Bench 版本为 1.0.4 和 R 3.63。
有人知道这里的问题是什么吗?
通常对运行
有用
str(res)
看看函数的输出是什么。在这种情况下,接近末尾的对象成员之一是
# $ time :List of 1
# ..$ : 'bench_time' num 12.3ms 16.1ms 17.9ms 12.3ms 13.4ms ...
这意味着 res$time
是一个只有一个成员的列表。
所以结果保存在 res$time[[1]]
中,可以从中计算出平均值和最大值。
例如,将median(res$time[[1]])
与打印结果进行比较。它们是相同的值。
median(res$time[[1]])
#[1] 12.3ms
平均值和最大值为
mean(res$time[[1]])
#[1] 12.5ms
max(res$time[[1]])
#[1] 17.9ms
考虑以下示例
res <- bench::mark(rnorm(1e5))
names(res)
#> [1] "expression" "min" "median" "itr/sec" "mem_alloc"
#> [6] "gc/sec" "n_itr" "n_gc" "total_time" "result"
#> [11] "memory" "time" "gc"
我有点困惑,不包括平均运行时间和最大运行时间,这与帮助页面相矛盾。 Bench 版本为 1.0.4 和 R 3.63。
有人知道这里的问题是什么吗?
通常对运行
有用str(res)
看看函数的输出是什么。在这种情况下,接近末尾的对象成员之一是
# $ time :List of 1
# ..$ : 'bench_time' num 12.3ms 16.1ms 17.9ms 12.3ms 13.4ms ...
这意味着 res$time
是一个只有一个成员的列表。
所以结果保存在 res$time[[1]]
中,可以从中计算出平均值和最大值。
例如,将median(res$time[[1]])
与打印结果进行比较。它们是相同的值。
median(res$time[[1]])
#[1] 12.3ms
平均值和最大值为
mean(res$time[[1]])
#[1] 12.5ms
max(res$time[[1]])
#[1] 17.9ms