Я хотел бы видеть трассировку вызовов функции, то есть отображать все дочерние вызовы, вызванные рекурсивно.
Я не знаю простого способа, кроме использования Profile
Profile.clear()
x = rand(3)
@profile for i in 1:10000 LinearAlgebra.norm(x) end
Profile.print()
10 ./task.jl:259; (::getfield(IJulia, Symbol("##12#15...
10 .../DL02A/src/eventloop.jl:8; eventloop(::ZMQ.Socket)
10 ./essentials.jl:696; invokelatest
10 ./essentials.jl:697; #invokelatest#1
10 ...rc/execute_request.jl:69; execute_request(::ZMQ.Socket, ::I...
10 ...c/SoftGlobalScope.jl:206; softscope_include_string(::Modul...
10 ./boot.jl:319; eval
10 ./In[20]:3; top-level scope
9 ...ofile/src/Profile.jl:25; macro expansion
9 ./In[20]:3; macro expansion
5 ...ebra/src/generic.jl:427; norm(::Array{Float64,1})
4 ...bra/src/generic.jl:429; norm(::Array{Float64,1}, ::In...
4 ...gebra/src/dense.jl:143; norm2(::Array{Float64,1})
1 ...ra/src/generic.jl:0; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:299; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:358; normInf
1 ...ra/src/generic.jl:274; generic_normInf
1 ...ra/src/generic.jl:303; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:311; generic_norm2(::Array{Float6...
1 ./math.jl:493; sqrt
1 ...ofile/src/Profile.jl:27; macro expansion
1 ...file/src/Profile.jl:282; stop_timer
Поскольку Profile
основано на выборке по времени, я должен зациклить функцию, чтобы позволить ей собрать достаточно данных для отображения. В результате в верхней части выходных данных есть некоторая избыточная информация, которая также вызывает усечение строк, которые меня действительно волнуют.
Все, что мне нужно, это:
5 ...ebra/src/generic.jl:427; norm(::Array{Float64,1})
4 ...bra/src/generic.jl:429; norm(::Array{Float64,1}, ::In...
4 ...gebra/src/dense.jl:143; norm2(::Array{Float64,1})
1 ...ra/src/generic.jl:0; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:299; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:358; normInf
1 ...ra/src/generic.jl:274; generic_normInf
1 ...ra/src/generic.jl:303; generic_norm2(::Array{Float6...
1 ...ra/src/generic.jl:311; generic_norm2(::Array{Float6...
1 ./math.jl:493; sqrt