pfitzseb / ProfileCanvas.jl

MIT License
88 stars 6 forks source link

`view` does not work with SnoopCompile flamegraphs #33

Open theogf opened 1 year ago

theogf commented 1 year ago

Here is a MWE:

julia> using ProfileCanvas, SnoopCompile
julia> tinf = @snoopi_deep sin.(rand(3))
InferenceTimingNode: 0.047287/0.081460 on Core.Compiler.Timings.ROOT() with 3 direct children

julia> ProfileCanvas.view(flamegraph(tinf))
ERROR: MethodError: no method matching getdict(::Vector{LeftChildRightSiblingTrees.Node{FlameGraphs.NodeData}})

Closest candidates are:
  getdict(::Vector{UInt64})
   @ Profile ~/.julia/juliaup/julia-1.9.3+0.x64.linux.gnu/share/julia/stdlib/v1.9/Profile/src/Profile.jl:426

Stacktrace:
 [1] view(data::LeftChildRightSiblingTrees.Node{FlameGraphs.NodeData}; C::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ ProfileCanvas ~/.julia/packages/ProfileCanvas/qoJ8w/src/ProfileCanvas.jl:143
 [2] view(data::LeftChildRightSiblingTrees.Node{FlameGraphs.NodeData})
   @ ProfileCanvas ~/.julia/packages/ProfileCanvas/qoJ8w/src/ProfileCanvas.jl:129
 [3] top-level scope
   @ REPL[10]:1
pfitzseb commented 1 year ago

It's not supposed to :P

theogf commented 1 year ago

I guess that's a feature request then ;)

To be fair the README says: "This package is intended as a drop-in replacement for ProfileView.jl" ;)