Изменение типа данных UInt64 на Float во времени Джулии
Я пытаюсь рассчитать время выполнения функции в Юлии. Например:
time = tic(); 7^12000000; toc()
Я хочу получить результат как float. Тип "время" Uint64, кто-нибудь может мне помочь, чтобы преобразовать его в Float64?
заранее спасибо
2 ответа
Проблема в том, что tic
а также toc
был удален в Julia 1.0 (на 0.7 они работают, но выдают предупреждение об устаревании). То, что я предлагаю ниже, работает на Julia 0.6, 0.7 и 1.0.
Ты можешь использовать:
@elapsed
макрос из Base, который возвращает время в секундах какFloat64
(который, в частности, возвращает время компиляции и время выполнения при первом вызове сравнительной функции, но только время прогона при последовательных запусках, поскольку вызываемая функция уже будет скомпилирована)@belapsed
макрос из BenchmarkTools.jl, который возвращает то же самое, но более сложный (подробности см. в 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
Ваш вопрос не ясен. tic() и toc() не существуют в Юлии. Используйте макрос @time.
julia> @time Float64(UInt(7^12000))
0.000048 seconds (7 allocations: 208 bytes)
6.871777734182465e18