https://discourse.julialang.org/t/slow-julia-startup-time-after-sysimage-creation-and-an-unbelievable-observation/44102
Dockerfile.jpct15base simple package recompile
precompile(Tuple{typeof(Base.length), Base.Dict{Base.PkgId, Module}})
precompile(Tuple{typeof(Base.println), Int64})
precompile(Tuple{typeof(Base.println), Base.TTY, Int64})
33
precompile(Tuple{typeof(Base.show), Base.VersionNumber})
precompile(Tuple{typeof(Base.show), Base.TTY, Base.VersionNumber})
precompile(Tuple{typeof(Base.print), Base.TTY, String, Base.VersionNumber, Vararg{Any, N} where N})
v"precompile(Tuple{typeof(Base.print), Base.TTY, Base.VersionNumber})
1.5.0-precompile(Tuple{typeof(Base.join), Base.TTY, Tuple{String, UInt64}, Char})
rc2.0"
real 0m0.479s
user 0m0.723s
sys 0m0.692s
Dockerfile.jpct15t1 trace + create_sysimage
precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#31#32"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#55#56"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#29#30"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#53#54"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#33#34"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#59#60"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#57#58"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#61#62"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#83#84"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#81#82"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#85#86"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#95#96"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#93#94"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#97#98"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#13#14"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#19#20"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Symbol, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#21#22"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#27#28"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#5#6"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Int32, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#7#8"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#900#901")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#902#903")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#904#905")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#906#907")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#908#909")), Symbol})
precompile(Tuple{getfield(ChainRulesCore, Symbol("#@scalar_rule")), LineNumberNode, Module, Any, Any, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.any), Function, Array{Any, 1}})
precompile(Tuple{getfield(Base, Symbol("#foldl##kw")), NamedTuple{(:init,), Tuple{Expr}}, typeof(Base.foldl), Function, Array{Any, 1}})
precompile(Tuple{typeof(Base.Broadcast.__dot__), Function})
precompile(Tuple{typeof(Base.collect_to_with_first!), Array{typeof(Base.muladd), 1}, Function, Base.Generator{Array{Any, 1}, typeof(Base.Broadcast.__dot__)}, Int64})
precompile(Tuple{typeof(MacroTools.match), Expr, LineNumberNode, Base.Dict{Any, Any}})
precompile(Tuple{typeof(MacroTools.match), Symbol, QuoteNode, Base.Dict{Any, Any}})
precompile(Tuple{typeof(Base.Broadcast.broadcasted), Function, Array{Expr, 1}})
precompile(Tuple{getfield(DocStringExtensions, Symbol("#24#25")){typeof(DocStringExtensions.template_hook)}, LineNumberNode, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.length), Base.Dict{Base.PkgId, Module}})
precompile(Tuple{typeof(Base.println), Int64})
precompile(Tuple{typeof(Base.println), Base.TTY, Int64})
152precompile(Tuple{typeof(FileWatching.watch_file), String, Int64})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.BinnedPool.Block}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.CuPtr{Nothing}}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.Mem.DeviceBuffer}})
precompile(Tuple{getfield(CUDA.BinnedPool, Symbol("#4#5"))})
precompile(Tuple{typeof(Base.sleep), Float64})
precompile(Tuple{typeof(Base.show), Base.VersionNumber})
precompile(Tuple{typeof(Base.show), Base.TTY, Base.VersionNumber})
precompile(Tuple{typeof(Base.print), Base.TTY, String, Base.VersionNumber, Vararg{Any, N} where N})
v"precompile(Tuple{typeof(Base.print), Base.TTY, Base.VersionNumber})
1.5.0-precompile(Tuple{typeof(Base.join), Base.TTY, Tuple{String, UInt64}, Char})
rc2.0"
precompile(Tuple{typeof(Base.:(|)), Bool, Bool})
precompile(Tuple{typeof(FileWatching.uvfinalize), FileWatching.FileMonitor})
real 0m3.599s
user 0m3.646s
sys 0m0.947s
Dockerfile.jpct15t2 trace + create_sysimage(traced.jl) + trace2 + create_sysimage2(traced2.jl)
precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#31#32"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#55#56"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#29#30"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#53#54"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#33#34"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#59#60"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#57#58"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#61#62"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#83#84"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#81#82"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#85#86"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#95#96"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#93#94"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#97#98"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#13#14"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#19#20"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Symbol, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#21#22"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#27#28"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#5#6"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Int32, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#7#8"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#900#901")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#902#903")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#904#905")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#906#907")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#908#909")), Symbol})
precompile(Tuple{getfield(ChainRulesCore, Symbol("#@scalar_rule")), LineNumberNode, Module, Any, Any, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.any), Function, Array{Any, 1}})
precompile(Tuple{getfield(Base, Symbol("#foldl##kw")), NamedTuple{(:init,), Tuple{Expr}}, typeof(Base.foldl), Function, Array{Any, 1}})
precompile(Tuple{typeof(Base.Broadcast.__dot__), Function})
precompile(Tuple{typeof(Base.collect_to_with_first!), Array{typeof(Base.muladd), 1}, Function, Base.Generator{Array{Any, 1}, typeof(Base.Broadcast.__dot__)}, Int64})
precompile(Tuple{typeof(Base.Broadcast.broadcasted), Function, Array{Expr, 1}})
precompile(Tuple{getfield(DocStringExtensions, Symbol("#24#25")){typeof(DocStringExtensions.template_hook)}, LineNumberNode, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.length), Base.Dict{Base.PkgId, Module}})
precompile(Tuple{typeof(Base.println), Int64})
precompile(Tuple{typeof(Base.println), Base.TTY, Int64})
152precompile(Tuple{typeof(FileWatching.watch_file), String, Int64})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.BinnedPool.Block}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.CuPtr{Nothing}}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.Mem.DeviceBuffer}})
precompile(Tuple{getfield(CUDA.BinnedPool, Symbol("#4#5"))})
precompile(Tuple{typeof(Base.sleep), Float64})
precompile(Tuple{typeof(Base.show), Base.VersionNumber})
precompile(Tuple{typeof(Base.show), Base.TTY, Base.VersionNumber})
precompile(Tuple{typeof(Base.print), Base.TTY, String, Base.VersionNumber, Vararg{Any, N} where N})
v"precompile(Tuple{typeof(Base.print), Base.TTY, Base.VersionNumber})
1.5.0-precompile(Tuple{typeof(Base.join), Base.TTY, Tuple{String, UInt64}, Char})
rc2.0"
precompile(Tuple{typeof(FileWatching.uvfinalize), FileWatching.FileMonitor})
real 0m3.548s
user 0m3.613s
sys 0m0.940s
Dockerfile.jpct15c2 trace + 2x create_sysimage(traced.jl)
precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#31#32"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#55#56"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#29#30"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#53#54"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#33#34"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#59#60"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#57#58"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#61#62"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#83#84"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#81#82"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#85#86"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#95#96"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#93#94"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#97#98"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#13#14"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#19#20"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Symbol, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#21#22"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#27#28"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#5#6"))}, Symbol})
precompile(Tuple{typeof(Base.string), Symbol, Int32, Vararg{Any, N} where N})
precompile(Tuple{getfield(CUDA, Symbol("#898#899")){getfield(DiffRules, Symbol("#7#8"))}, Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#900#901")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#902#903")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#904#905")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#906#907")), Symbol})
precompile(Tuple{getfield(CUDA, Symbol("#908#909")), Symbol})
precompile(Tuple{getfield(ChainRulesCore, Symbol("#@scalar_rule")), LineNumberNode, Module, Any, Any, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.any), Function, Array{Any, 1}})
precompile(Tuple{getfield(Base, Symbol("#foldl##kw")), NamedTuple{(:init,), Tuple{Expr}}, typeof(Base.foldl), Function, Array{Any, 1}})
precompile(Tuple{typeof(Base.Broadcast.__dot__), Function})
precompile(Tuple{typeof(Base.collect_to_with_first!), Array{typeof(Base.muladd), 1}, Function, Base.Generator{Array{Any, 1}, typeof(Base.Broadcast.__dot__)}, Int64})
precompile(Tuple{typeof(Base.Broadcast.broadcasted), Function, Array{Expr, 1}})
precompile(Tuple{getfield(DocStringExtensions, Symbol("#24#25")){typeof(DocStringExtensions.template_hook)}, LineNumberNode, Vararg{Any, N} where N})
precompile(Tuple{typeof(Base.length), Base.Dict{Base.PkgId, Module}})
precompile(Tuple{typeof(Base.println), Int64})
precompile(Tuple{typeof(Base.println), Base.TTY, Int64})
152precompile(Tuple{typeof(FileWatching.watch_file), String, Int64})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.BinnedPool.Block}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.CuPtr{Nothing}}})
precompile(Tuple{typeof(Base.allocatedinline), Type{CUDA.Mem.DeviceBuffer}})
precompile(Tuple{getfield(CUDA.BinnedPool, Symbol("#4#5"))})
precompile(Tuple{typeof(Base.sleep), Float64})
precompile(Tuple{typeof(Base.show), Base.VersionNumber})
precompile(Tuple{typeof(Base.show), Base.TTY, Base.VersionNumber})
precompile(Tuple{typeof(Base.print), Base.TTY, String, Base.VersionNumber, Vararg{Any, N} where N})
v"precompile(Tuple{typeof(Base.print), Base.TTY, Base.VersionNumber})
1.5.0-precompile(Tuple{typeof(Base.join), Base.TTY, Tuple{String, UInt64}, Char})
rc2.0"
precompile(Tuple{typeof(FileWatching.uvfinalize), FileWatching.FileMonitor})
real 0m3.559s
user 0m3.697s
sys 0m0.861s