-
Notifications
You must be signed in to change notification settings - Fork 261
Closed
Description
inserting iterate(v::Union{Base.KeySet{<:Any, <:DataStructures.SwissDict}, Base.ValueIterator{<:DataStructures.SwissDict}}, state) in DataStructures at C:\Users\accou\.julia\packages\DataStructures\59MD0\src\swiss_dict.jl:646 invalidated:
backedges: 1: superseding iterate(v::Union{Base.KeySet, Base.ValueIterator}, state...) in Base at abstractdict.jl:63 with MethodInstance for iterate(::Base.KeySet, ::Any) (1 children)
2: superseding iterate(v::T, i::Int64) where T<:Union{Base.KeySet{<:Any, <:Dict}, Base.ValueIterator{<:Dict}} in Base at dict.jl:712 with MethodInstance for iterate(::Base.KeySet{var"#s82", T} where {var"#s82", T<:(Dict{var"#s82"})}, ::Int64) (7 children)
3: superseding iterate(v::Union{Base.KeySet, Base.ValueIterator}, state...) in Base at abstractdict.jl:63 with MethodInstance for iterate(::Base.KeySet{String, _A} where _A<:(AbstractDict{String}), ::Any) (8 children)
4: superseding iterate(v::T, i::Int64) where T<:Union{Base.KeySet{<:Any, <:Dict}, Base.ValueIterator{<:Dict}} in Base at dict.jl:712 with MethodInstance for iterate(::Base.KeySet{String, _A} where _A<:(Dict{String}), ::Int64) (145 children)Found with:
using SnoopCompile
invalidations = @snoopr begin
using OrdinaryDiffEq
function lorenz(du, u, p, t)
du[1] = 10.0(u[2] - u[1])
du[2] = u[1] * (28.0 - u[3]) - u[2]
du[3] = u[1] * u[2] - (8 / 3) * u[3]
end
u0 = [1.0; 0.0; 0.0]
tspan = (0.0, 100.0)
prob = ODEProblem{true,false}(lorenz, u0, tspan)
alg = Rodas5()
tinf = solve(prob, alg)
end;
trees = SnoopCompile.invalidation_trees(invalidations);
@show length(SnoopCompile.uinvalidated(invalidations)) # show total invalidations
show(trees[end-2]) # show the most invalidated method
# Count number of children (number of invalidations per invalidated method)
n_invalidations = map(trees) do methinvs
SnoopCompile.countchildren(methinvs)
end
import Plots
Plots.plot(
1:length(trees),
n_invalidations;
markershape=:circle,
xlabel="i-th method invalidation",
label="Number of children per method invalidations"
)Third largest invalidation.
Metadata
Metadata
Assignees
Labels
No labels
