📜  如何测量 R 中函数的执行时间?

📅  最后修改于: 2022-05-13 01:54:30.789000             🧑  作者: Mango

如何测量 R 中函数的执行时间?

在本文中,我们将学习如何在 R 编程语言中测量函数的执行或运行时间。

方法一:使用Sys.time

为此,首先创建一个运行特定持续时间的示例函数。为此,将持续时间传递给 Sys.sleep()函数。

句法:

在变量startTime 中存储/记录执行前的时间然后在函数执行后,将时间存储在endTime变量中。为了得到 系统的当前时间我们使用了Sys.time()函数,它不接受任何参数。

然后我们计算执行后时间和执行前时间之间的差异,这给了我们函数的执行时间(运行时间)。

例子:

R
# sample func, whose exec time will be measured
sleep_func <- function() { Sys.sleep(5) } 
startTime <- Sys.time()
  
sleep_func()
endTime <- Sys.time()
  
# prints recorded time
print(endTime - startTime)


R
# sample func, whose exec time will be measured
sleep_func <- function() { Sys.sleep(5) } 
  
system.time({sleep_func()})


R
library(tictoc)
  
sleep_func <- function() { Sys.sleep(5) }
  
tic()
sleep_func()
toc()


R
library(microbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
microbenchmark(sleep_func())


R
library(rbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
benchmark(sleep_func())


输出:

方法二:使用system.time()

首先,创建一个运行特定持续时间的示例函数。 然后从 system.time( {} ) 的参数中调用sleep_func ,这会测量并返回sleep_func()的执行时间



system.time({})是一个简单的函数,它将任何 R 表达式或代码或函数作为参数并返回其执行时间。

注意: R 表达式必须包含在“ {} 括号”中 在将其作为参数传递之前。

例子:

电阻

# sample func, whose exec time will be measured
sleep_func <- function() { Sys.sleep(5) } 
  
system.time({sleep_func()})

输出:

方法三:使用tictoc库

我们必须首先安装并导入名为“ tictoc ”的库。然后我们定义运行特定持续时间的示例函数。调用tic ()函数,然后放置任何R表达式或代码或函数(),然后以toc ()函数调用结束。它将打印sleep_func()的执行时间 tic()函数启动计时器, toc()函数结束计时器,对于这些函数调用之间放置的任何代码,都会测量经过的时间。

例子:

电阻

library(tictoc)
  
sleep_func <- function() { Sys.sleep(5) }
  
tic()
sleep_func()
toc()

输出:

方法四:使用微基准库

我们必须首先安装并导入名为“microbenchmark”的库,并创建一个示例函数以在特定时间段内工作。

将 sleep_func() 作为参数传入microbenchmark()函数。它将打印 sleep_func()函数的基准分数。它首先打印正在使用的单位,然后打印所有详细信息,如最小时间、最大时间、平均值、中位数等。在我们的示例中,单位是毫秒。

R 编程语言中的microbenchmark()函数为准确测量和比较 R 表达式的执行时间提供了基础设施。这个函数通常可以替代我们在中看到的system.time()方法 方法二 因为它提供了更准确的结果。



例子:

电阻

library(microbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
microbenchmark(sleep_func())

输出:

方法五:使用rbenchmark库

首先,安装并导入名为“rbenchmark”的库。

将 sleep_func() 作为参数传入 benchmark()函数。它将打印 sleep_func()函数的基准分数。

例子:

电阻

library(rbenchmark)
  
sleep_func <- function() { Sys.sleep(0.5) }
  
benchmark(sleep_func())

输出: