Изменение типа данных 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
Другие вопросы по тегам