Changed the default size heuristics for SlabBuffer, the default slab size is now 1 megabyte, and custom slabs
are now created for allocations which are larger than half the slab size, rather than larger than the slab size.
Changed the default size heuristic for AllocBuffer. AllocBuffer() now creates a buffer of 1 megabyte capacity.
I think 1mb is a bit more reasonable. This is also the size where Julia itself starts turning stack allocations into heap allocations:
julia> code_llvm(Tuple{}, debuginfo=:none) do
r = Ref{NTuple{1_048_575, UInt8}}()
Base.donotdelete(r)
end
define void @"julia_#16_1305"() #0 {
top:
%0 = alloca [1048575 x i8], align 16
call void (...) @jl_f_donotdelete([1048575 x i8]* nonnull %0)
ret void
}
SlabBuffer
, the default slab size is now 1 megabyte, and custom slabs are now created for allocations which are larger than half the slab size, rather than larger than the slab size.AllocBuffer
.AllocBuffer()
now creates a buffer of 1 megabyte capacity.I think 1mb is a bit more reasonable. This is also the size where Julia itself starts turning stack allocations into heap allocations:
versus