在“ Profile.print”树形视图中,直到深度> n才显示呼叫轨迹?

时间:2019-01-04 16:21:25

标签: julia

我想查看一个函数的调用跟踪,即显示所有递归调用的子调用。

除了使用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

0 个答案:

没有答案