在R中是否有衡量函数执行时间的标准化方法?
显然我可以用系统。时间,然后取它们的差异,但我想知道是否有一些标准化的方法或功能(不想发明轮子)。
我似乎记得我曾经用过如下的东西:
somesysfunction("myfunction(with,arguments)")
> Start time : 2001-01-01 00:00:00 # output of somesysfunction
> "Result" "of" "myfunction" # output of myfunction
> End time : 2001-01-01 00:00:10 # output of somesysfunction
> Total Execution time : 10 seconds # output of somesysfunction
microbenchmark是一个轻量级(约50kB)包,或多或少是R中对多个表达式和函数进行基准测试的标准方法:
microbenchmark(myfunction(with,arguments))
例如:
> microbenchmark::microbenchmark(log10(5), log(5)/log(10), times = 10000)
Unit: nanoseconds
expr min lq mean median uq max neval cld
log10(5) 0 0 25.5738 0 1 10265 10000 a
log(5)/log(10) 0 0 28.1838 0 1 10265 10000
在这里,两个表达式都被计算了10000次,平均执行时间约为25-30纳秒。
microbenchmark是一个轻量级(约50kB)包,或多或少是R中对多个表达式和函数进行基准测试的标准方法:
microbenchmark(myfunction(with,arguments))
例如:
> microbenchmark::microbenchmark(log10(5), log(5)/log(10), times = 10000)
Unit: nanoseconds
expr min lq mean median uq max neval cld
log10(5) 0 0 25.5738 0 1 10265 10000 a
log(5)/log(10) 0 0 28.1838 0 1 10265 10000
在这里,两个表达式都被计算了10000次,平均执行时间约为25-30纳秒。