-
Notifications
You must be signed in to change notification settings - Fork 98
Closed
Labels
Description
x-ref: https://discourse.julialang.org/t/jump-delete-is-slower-than-building-a-new-model/92597
julia> using JuMP
julia> import HiGHS
julia> import Gurobi
julia> function main(optimizer, flag; bridges)
x_min = rand(100,100)
m = Model(optimizer; add_bridges = bridges)
set_silent(m)
@variable(m, x[1:100, 1:100])
@constraint(m, x_min_con, x .>= x_min)
@objective(m, Min, sum(x))
optimize!(m)
if flag
@time delete(m, vec(x_min_con))
else
@time delete.(m, x_min_con)
end
return
end
main (generic function with 1 method)
julia> main(Gurobi.Optimizer, true; bridges = true)
1.274187 seconds (138.19 k allocations: 3.311 MiB)
julia> main(Gurobi.Optimizer, false; bridges = true)
1.313978 seconds (148.71 k allocations: 3.319 MiB)
julia> main(HiGHS.Optimizer, true; bridges = true)
2.356010 seconds (175.15 k allocations: 1.362 GiB, 9.78% gc time)
julia> main(HiGHS.Optimizer, false; bridges = true)
2.349330 seconds (204.64 k allocations: 1.362 GiB, 9.51% gc time)
julia> main(Gurobi.Optimizer, true; bridges = false)
0.011561 seconds (138.71 k allocations: 3.433 MiB)
julia> main(Gurobi.Optimizer, false; bridges = false)
1.280514 seconds (148.71 k allocations: 3.319 MiB)
julia> main(HiGHS.Optimizer, true; bridges = false)
0.010352 seconds (119.25 k allocations: 3.745 MiB)
julia> main(HiGHS.Optimizer, false; bridges = false)
2.384257 seconds (204.64 k allocations: 1.362 GiB, 9.59% gc time)