You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I put setup in @compile_workload, it fails to compile later steps. I suspect this is due to inlining or otherwise treating multiple lines in the compile workflow step as a single operation.
Does not compile rand(::AliasTable)
PrecompileTools.@compile_workloadbegin
at =AliasTable([1.0, 2.0])
rand(at)
end
Does compile rand(::AliasTable)
at =AliasTable([1.0, 2.0])
PrecompileTools.@compile_workloadbeginrand(at)
end
Full example
x@fedora:~/.julia/dev/AliasTables$ cat src/AliasTables.jl
module AliasTables
using Random
using PrecompileTools
export AliasTable
struct AliasTable{T}
x::T
end
Base.rand(x::AliasTable) = rand(x.x)
at = AliasTable([1.0, 2.0])
PrecompileTools.@compile_workload begin
rand(at)
end
end
x@fedora:~/.julia/dev/AliasTables$ julia --project -e '@time using AliasTables; @time at = AliasTable([1.0, 2.0]); @time rand(at)'
Precompiling AliasTables...
1 dependency successfully precompiled in 1 seconds. 6 already precompiled.
1.115552 seconds (599.80 k allocations: 35.161 MiB, 38.56% compilation time)
0.000001 seconds (4 allocations: 112 bytes)
0.000016 seconds (7 allocations: 320 bytes)
x@fedora:~/.julia/dev/AliasTables$ julia --project -e '@time using AliasTables; @time at = AliasTable([1.0, 2.0]); @time rand(at)'
0.022336 seconds (37.92 k allocations: 2.467 MiB)
0.000002 seconds (4 allocations: 112 bytes)
0.000011 seconds (7 allocations: 320 bytes)
x@fedora:~/.julia/dev/AliasTables$ git checkout HEAD~
HEAD is now at 87e8d9c Broken
x@fedora:~/.julia/dev/AliasTables$ cat src/AliasTables.jl
module AliasTables
using Random
using PrecompileTools
export AliasTable
struct AliasTable{T}
x::T
end
Base.rand(x::AliasTable) = rand(x.x)
PrecompileTools.@compile_workload begin
at = AliasTable([1.0, 2.0])
rand(at)
end
end
x@fedora:~/.julia/dev/AliasTables$ julia --project -e '@time using AliasTables; @time at = AliasTable([1.0, 2.0]); @time rand(at)'
Precompiling AliasTables...
1 dependency successfully precompiled in 1 seconds. 6 already precompiled.
0.994406 seconds (598.94 k allocations: 35.113 MiB, 43.08% compilation time)
0.000002 seconds (4 allocations: 112 bytes)
0.002649 seconds (236 allocations: 11.422 KiB, 99.55% compilation time)
x@fedora:~/.julia/dev/AliasTables$ julia --project -e '@time using AliasTables; @time at = AliasTable([1.0, 2.0]); @time rand(at)'
0.022320 seconds (37.92 k allocations: 2.467 MiB)
0.000001 seconds (4 allocations: 112 bytes)
0.002591 seconds (236 allocations: 11.422 KiB, 99.63% compilation time)
I ran into this example when attempting to use this package to set up precompilation for AliasTables.jl (LilithHafner/AliasTables.jl#33)
The text was updated successfully, but these errors were encountered:
When I put setup in
@compile_workload
, it fails to compile later steps. I suspect this is due to inlining or otherwise treating multiple lines in the compile workflow step as a single operation.Does not compile
rand(::AliasTable)
Does compile
rand(::AliasTable)
Full example
I ran into this example when attempting to use this package to set up precompilation for AliasTables.jl (LilithHafner/AliasTables.jl#33)
The text was updated successfully, but these errors were encountered: