计算R中函数的复杂度
我需要用R计算一个长函数(600条直线)的复杂度。 我想要的结果可能是这样的计算R中函数的复杂度,r,function,time-complexity,complexity-theory,R,Function,Time Complexity,Complexity Theory,我需要用R计算一个长函数(600条直线)的复杂度。 我想要的结果可能是这样的 start calculate complexity **My function** End calculate complexity result= " the complexity of this function is x 我想我没有理解,但我在基准测试中发现的只是计算运行时间 start.time <- Sys.time() *****function***** end.time <- Sys.t
start calculate complexity
**My function**
End calculate complexity
result= " the complexity of this function is x
我想我没有理解,但我在基准测试中发现的只是计算运行时间
start.time <- Sys.time()
*****function*****
end.time <- Sys.time()
time.taken <- end.time - start.time
time.taken
是否有其他替代方案,或者我可以根据需要更新这些功能取决于您对“复杂性”的想法您有很多选择,仅举几例: 圈复杂度
- 通过程序源代码的线性独立路径数量的定量度量-例如通过cyclocomp包实现:
- Base R提供了一个选项,可以使用
——一个纯内存使用分析器来评测内存使用情况(如果R是在定义了R_内存_评测的情况下编译的)rprofm
- 使用
utils::Rprof(…,memory.profiling=TRUE)采样内存评测
- profvis-Rprof的一个包扩展,具有非常好的图形输出,用于时间和内存-
- 使用多种方法进行度量所花费的时间,例如基本函数
返回两次system.Time
调用之间的差异,在这两次调用中,它对作为参数提供的表达式求值。最简单的用法:proc.Time
system.time(runif(10^8))
- 时间分析包,如或
- 通过程序源代码的线性独立路径数量的定量度量-例如通过cyclocomp包实现:
- Base R提供了一个选项,可以使用
——一个纯内存使用分析器来评测内存使用情况(如果R是在定义了R_内存_评测的情况下编译的)rprofm
- 使用
utils::Rprof(…,memory.profiling=TRUE)采样内存评测
- profvis-Rprof的一个包扩展,具有非常好的图形输出,用于时间和内存-
- 使用多种方法进行度量所花费的时间,例如基本函数
返回两次system.Time
调用之间的差异,在这两次调用中,它对作为参数提供的表达式求值。最简单的用法:proc.Time
system.time(runif(10^8))
- 时间分析包,如或
complexity(x, scaleMin, scaleMax, width = 7, measure = "complexity",
rescale = FALSE)