Regarding the output format for the invalidations reports, weโve incorporated a relatively generic way of creating tables (e.g., below) that are similar to the plots made (e.g. here) but with more information (file / line number / method names) in ReportMetrics.jl. The script looks like
using SnoopCompileCore
invalidations = @snoopr begin
# load packages & do representative work
nothing
end;
import ReportMetrics
ReportMetrics.report_invalidations(;
job_name = "invalidations",
invalidations,
process_filename = x -> last(split(x, "packages/")),
)
And the output table looks like, for example:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
โ <file name>:<line number> โ Method Name โ Invalidations โ Invalidations % โ
โ โ โ Number โ (xแตข/โx) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโค
โ ChainRulesCore/oBjCg/src/tangent_types/thunks.jl:29 โ ChainRulesCore.== โ 179 โ 63 โ
โ ChainRulesCore/oBjCg/src/tangent_types/thunks.jl:28 โ ChainRulesCore.== โ 104 โ 36 โ
โ ChainRulesCore/oBjCg/src/tangent_arithmetic.jl:105 โ ChainRulesCore.* โ 2 โ 1 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ
Could this be somehow incorporated into the GitHub action for invalidations?