julia - 如何在 Julia 中获取函数的执行时间?

标签 julia

我想获取 Julia 中函数的执行时间。这是一个最小的工作示例:

function raise_to(n)
    for i in 1:n
        y = (1/7)^n
    end
end

如何获取执行时间raise_to(10) ?

最佳答案

对函数进行基准测试的推荐方法是使用 BenchmarkTools :

julia> function raise_to(n)
           y = (1/7)^n
       end
raise_to (generic function with 1 method)

julia> using BenchmarkTools

julia> @btime raise_to(10)
  1.815 ns (0 allocations: 0 bytes)

请注意,多次重复计算(就像您在示例中所做的那样)是获得更准确测量值的好主意。但是BenchmarTools为你做。

另请注意 BenchmarkTools避免了仅使用 @time 的许多陷阱.最值得注意的是 @time ,除了运行时间之外,您可能还会测量编译时间。这就是为什么第一次调用 @time经常显示更大的时间/分配:
# First invocation: the method gets compiled
# Large resource consumption
julia> @time raise_to(10)
  0.007901 seconds (7.70 k allocations: 475.745 KiB)
3.5401331746414338e-9

# Subsequent invocations: stable and low timings
julia> @time raise_to(10)
  0.000003 seconds (5 allocations: 176 bytes)
3.5401331746414338e-9

julia> @time raise_to(10)
  0.000002 seconds (5 allocations: 176 bytes)
3.5401331746414338e-9

julia> @time raise_to(10)
  0.000001 seconds (5 allocations: 176 bytes)
3.5401331746414338e-9

关于julia - 如何在 Julia 中获取函数的执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60867667/

相关文章:

julia - 1/2 给出 0.5,但 sqrt(-1) 给出 DomainError

constants - Julia 中的任意精度浮点类型

julia - 如何制作任意级别的嵌套for循环

Julia 语法 - 带有 where 子句的函数的返回类型注释

function - 检查函数的参数是否为函数

julia - 导入类型化函数

julia - 当我尝试使用矩阵作为字段创建复合类型时堆栈溢出

plot - 我在 Julia 中生成 3D 曲面图时遇到问题(我正在使用 GR 后端)

proxy - Julia 连接到代理后面的服务器

julia - 在 julia 中从 [1,2,0,0,4,0] 中查找非零元素的索引并用它们创建一个数组