在Julia时间将数据类型UInt64更改为Float

时间:2018-10-20 00:01:18

标签: julia

我正在尝试计算Julia中某个函数的运行时间。例如:

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

我想得到浮点数的结果。时间类型是Uint64,有人可以帮助我将其转换为Float64吗?

预先感谢

2 个答案:

答案 0 :(得分:2)

问题是tictoc在Julia 1.0中被删除(在0.7上它们起作用,但是抛出了弃用警告)。我在下面提出的建议适用于Julia 0.6、0.7和1.0。

您可以使用:

    来自Base的
  • @elapsed宏,它以Float64的形式返回以秒为单位的时间(尤其是,在第一次调用基准测试函数时返回编译时间和运行时间,而在连续运行时仅返回运行时间因为被调用的函数将已经被编译)
  • BenchmarkTools.jl中的
  • @belapsed宏返回相同但更复杂的宏(有关详细信息,请参见BenchmarkTools.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

答案 1 :(得分:1)

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

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