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?