Open
Description
It could be relevant to know the storage used by a stats
or a solver
sometimes.
I implemented my own function in Krylov.jl but it can be used here too for optimization solvers.
function ksizeof(attribute)
if isa(attribute, AbstractVector) && !isempty(attribute)
# All vectors inside a vector have the same size in Krylov.jl
size_attribute = length(attribute) * ksizeof(attribute[1])
else
size_attribute = sizeof(attribute)
end
return size_attribute
end
function sizeof(stats_solver :: Union{KrylovStats, KrylovSolver})
type = typeof(stats_solver)
nfields = fieldcount(type)
storage = 0
for i = 1:nfields
field_i = getfield(stats_solver, i)
size_i = ksizeof(field_i)
storage += size_i
end
return storage
end