代码之家  ›  专栏  ›  技术社区  ›  Bernando Purba

将数据类型UInt64更改为浮动时间

  •  0
  • Bernando Purba  · 技术社区  · 7 年前

    我试图计算Julia中函数的运行时间。例如:

    time = tic(); 7^12000000; toc()
    

    我想得到浮点数的结果。“时间”的类型是Uint64,有人能帮我把它转换成Float64吗?

    提前谢谢

    2 回复  |  直到 7 年前
        1
  •  2
  •   Bogumił Kamiński    7 年前

    问题是 tic toc 在julia1.0中被删除(在0.7中,它们可以工作,但会抛出一个弃用警告)。我下面的建议适用于julia0.6、0.7和1.0。

    您可以使用:

    • @elapsed Float64 (尤其是,在第一次调用基准函数时返回编译时间和运行时间,但在连续运行时仅返回运行时间,因为调用的函数已经被编译)
    • @belapsed 宏来自基准工具.jl返回相同但更复杂的(参见基准工具.jl详细信息,但主要区别在于它多次运行函数并报告最短观察时间)

    举个例子:

    julia> @elapsed sum(rand(10^6)) # includes compilation time
    0.182671045
    
    julia> @elapsed sum(rand(10^6)) # benchmarked functions are already precompiled
    0.007848933
    
    julia> using BenchmarkTools
    
    julia> @belapsed sum(rand(10^6)) # minimum time from many runs
    0.006249196
    
        2
  •  1
  •   Diego Andres Alvarez Marin    7 年前

    你的问题不清楚。Julia中不存在tic()和toc()。使用宏@time。

    julia> @time Float64(UInt(7^12000))
      0.000048 seconds (7 allocations: 208 bytes)
    6.871777734182465e18
    
    推荐文章