Hello hackers, Mateusz Guzik was benchmarking PostgreSQL on FreeBSD investigating the kqueue thread and complained off-list about a lot of calls to memset() of size 256KB from dopr() in our snprintf.c code.
Yeah, that says: PrintfArgType argtypes[NL_ARGMAX + 2]; ... MemSet(argtypes, 0, sizeof(argtypes)); PrintfArgType is an enum, and we define NL_ARGMAX as 16 if the OS didn't already define it. On FreeBSD 11, NL_ARGMAX was defined as 99 in <limits.h>. On FreeBSD 12, it is defined as 65536... ouch. On a Debian box I see it is 4096. Is there any reason to use the OS definition here? -- Thomas Munro http://www.enterprisedb.com