Closed
Description
Currently we have only 16 and 32 byte size classes. 24-byte size class would reduce memory consumption by 25% for programs that extensively use 24-byte objects (e.g. Node struct { left, right *Node; data int }). Leaving aside other issues with vector instructions (16-byte alignment is not enforced for stack, AVX 32-byte alignment is not enforced at all); 24-byte objects are hardly used with SSE as they contains only one and a half of vector elements. Here is a prototype CL: https://golang.org/cl/128090043/ On 64-bits it reduces heap size by 6%, on 32-bits - by 12% on garbage benchmark.