Re: Dict parsing question
Lawrence D'Oliveiro <ldo-kC51rjc0cqs1dNLGKZg6taU/[email protected]> Sat, 16 Dec 2023 10:03:26 +1300
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Organization | Geek Central |
| Message-ID | <[email protected]> |
On Fri, 15 Dec 2023 15:55:38 +0000, Simon McVittie wrote: > It's misleading to say that the beginning of a dict is 8-byte-aligned > ... You are right about that, because the spec did say “dict entries”, not “dicts” (as I thought). > The array is *4*-byte aligned, the same as any other array (because it > starts with a 4-byte length). After the length, the dict entries > inside it are 8-byte aligned, the same as structs. It seems to me that having aligned fields within wire protocols is just a recipe for adding to the confusion. Is there really a measurable performance improvement from keeping things aligned? Is the wasted space worth it? And then we have the issue that the optimum alignment for some things on 64-bit architectures is different from that for 32-bit ones. So layout decisions made back in the 32-bit era start to look a bit anachronistic now that 64-bit machines are dominant. “Premature optimization is the root of all evil.” -- variously attributed to Tony Hoare or Donald Knuth