Skip to content

Instantly share code, notes, and snippets.

@ImreSamu
Created August 3, 2020 11:39
Show Gist options
  • Select an option

  • Save ImreSamu/b286d0f3e7f031169af1e9097c91ca3a to your computer and use it in GitHub Desktop.

Select an option

Save ImreSamu/b286d0f3e7f031169af1e9097c91ca3a to your computer and use it in GitHub Desktop.
Julia1.5rc2 Package compiler test 2020Aug03
FROM julia:1.5-rc
RUN apt-get update \
&& apt-get install -y \
build-essential \
cmake \
gfortran \
git \
libatomic1 \
m4 \
perl \
pkg-config \
python \
wget \
&& rm -rf /var/lib/apt/lists/*
RUN julia -e 'using Pkg; Pkg.add([ \
"Revise","JuliaFormatter", \
"LanguageServer", \
"PackageCompiler", \
"EllipsisNotation", "Parameters", "JSON2", \
"Distributions", \
"OhMyREPL", \
"Plots", \
"Flux","Zygote" \
]) \
;Pkg.precompile()'
RUN julia -e 'using Flux, Zygote;' \
&& julia -e 'using InteractiveUtils; versioninfo()'
FROM jpct15base
RUN julia --trace-compile="traced.jl" \
-e 'using \
Revise, JuliaFormatter, \
LanguageServer, \
PackageCompiler, \
EllipsisNotation, Parameters, JSON2, \
Distributions, \
OhMyREPL, \
Plots, \
Flux, Zygote'
RUN julia -e 'using PackageCompiler; \
PackageCompiler.create_sysimage([ \
:Revise, :JuliaFormatter, \
:LanguageServer, \
:PackageCompiler, \
:EllipsisNotation, :Parameters, :JSON2, \
:Distributions, \
:OhMyREPL, \
:Plots, \
:Flux, :Zygote \
]; precompile_statements_file="traced.jl", replace_default=true) \
'
RUN julia -e 'using PackageCompiler; \
PackageCompiler.create_sysimage([ \
:Revise, :JuliaFormatter, \
:LanguageServer, \
:PackageCompiler, \
:EllipsisNotation, :Parameters, :JSON2, \
:Distributions, \
:OhMyREPL, \
:Plots, \
:Flux, :Zygote \
]; precompile_statements_file="traced.jl", replace_default=true) \
'
RUN julia -e 'using Flux, Zygote;' \
&& julia -e 'using InteractiveUtils; versioninfo()'
FROM jpct15base
RUN julia --trace-compile="traced.jl" \
-e 'using \
Revise, JuliaFormatter, \
LanguageServer, \
PackageCompiler, \
EllipsisNotation, Parameters, JSON2, \
Distributions, \
OhMyREPL, \
Plots, \
Flux, Zygote'
RUN julia -e 'using PackageCompiler; \
PackageCompiler.create_sysimage([ \
:Revise, :JuliaFormatter, \
:LanguageServer, \
:PackageCompiler, \
:EllipsisNotation, :Parameters, :JSON2, \
:Distributions, \
:OhMyREPL, \
:Plots, \
:Flux, :Zygote \
]; precompile_statements_file="traced.jl", replace_default=true) \
'
RUN julia -e 'using Flux, Zygote;' \
&& julia -e 'using InteractiveUtils; versioninfo()'
FROM jpct15base
RUN julia --trace-compile="traced.jl" \
-e 'using \
Revise, JuliaFormatter, \
LanguageServer, \
PackageCompiler, \
EllipsisNotation, Parameters, JSON2, \
Distributions, \
OhMyREPL, \
Plots, \
Flux, Zygote'
RUN julia -e 'using PackageCompiler; \
PackageCompiler.create_sysimage([ \
:Revise, :JuliaFormatter, \
:LanguageServer, \
:PackageCompiler, \
:EllipsisNotation, :Parameters, :JSON2, \
:Distributions, \
:OhMyREPL, \
:Plots, \
:Flux, :Zygote \
]; precompile_statements_file="traced.jl", replace_default=true) \
'
RUN julia --trace-compile="traced2.jl" \
-e 'using \
Revise, JuliaFormatter, \
LanguageServer, \
PackageCompiler, \
EllipsisNotation, Parameters, JSON2, \
Distributions, \
OhMyREPL, \
Plots, \
Flux, Zygote'
RUN julia -e 'using PackageCompiler; \
PackageCompiler.create_sysimage([ \
:Revise, :JuliaFormatter, \
:LanguageServer, \
:PackageCompiler, \
:EllipsisNotation, :Parameters, :JSON2, \
:Distributions, \
:OhMyREPL, \
:Plots, \
:Flux, :Zygote \
]; precompile_statements_file="traced2.jl", replace_default=true) \
'
RUN julia -e 'using Flux, Zygote;' \
&& julia -e 'using InteractiveUtils; versioninfo()'

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
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
docker build --pull -t jpct15base -f Dockerfile.jpct15base .
docker build -t jpct15t1 -f Dockerfile.jpct15t1 .
docker build -t jpct15t2 -f Dockerfile.jpct15t2 .
docker build -t jpct15c2 -f Dockerfile.jpct15c2 .
echo "# simple julia packagecompiler test --trace-compile=stderr " > output.md
echo " https://discourse.julialang.org/t/slow-julia-startup-time-after-sysimage-creation-and-an-unbelievable-observation/44102 " > output.md
test() {
echo " " >> output.md
echo "### Dockerfile.$1 $2" >> output.md
echo "\`\`\`" >> output.md
docker run -it --rm $1 bash -c 'time julia --trace-compile=stderr -E "println(length(Base.loaded_modules));VERSION"' >> output.md
echo "\`\`\`" >> output.md
echo " " >> output.md
}
test jpct15base "simple package recompile"
test jpct15t1 "trace + create_sysimage"
test jpct15t2 "trace + create_sysimage(traced.jl) + trace2 + create_sysimage2(traced2.jl)"
test jpct15c2 "trace + 2x create_sysimage(traced.jl)"
echo "done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment