кстати, есть ещё пакет BangBang, бывает прям очень удобно для постепенного роста вектора: он позволяет не указывать тип элементов сразу, а увеличивает его по необходимости
и скорость по сути не страдает:
julia> using BangBang
julia> function f(n)
vec = Union{}[]
for i in 1:n
vec = push!!(vec, (;i, j=n-i))
end
return vec
end
julia>
@btime f(10^3);
7.648 μs (12 allocations: 32.59 KiB)
julia>
@btime f(10^6);
7.102 ms (22 allocations: 17.00 MiB)