> That said, some structs may have a smaller size, but for efficiency, the Go runtime will allocate them in the same size class, then those structs are not considered sloppy:<p>It's not for efficiency, per se. As in C, to support arrays of structs all structs are padded so their size is a multiple of the strictest (largest) alignment of any of its members. If the example struct described above were 24 bytes instead of 32, then the second element of an <i>array</i> of those structs wouldn't be properly aligned for any of its uint64 or pointer members. On architectures that require aligned loads and stores that's not an efficiency optimization, but required for correctness.