Re: Improve a few appendStringInfo calls new to v18
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2025-04-11T14:41:41Z
Lists: pgsql-hackers
On Fri, Apr 11, 2025 at 10:40:57AM +1200, David Rowley wrote: > On Fri, 11 Apr 2025 at 02:51, Nathan Bossart <nathandbossart@gmail.com> wrote: >> This probably isn't v18 material, but this reminds me of my idea to change >> appendStringInfoString() into a macro for appendBinaryStringInfo() so that >> the compiler can remove the runtime strlen() calls for string literals [0]. >> In most cases, the benefits are probably negligible, but StringInfo is >> sometimes used in hot paths. > > That one has come up a few times. The most lengthy discussion I > remember was in [1]. It didn't come to anything, but I don't think > there were any objections to it, so maybe we should just do it. > > In the thread I did some measurements of binary size increases. For > non-compile-time consts, it does mean putting the strlen() call in the > calling function, which is a bit of overhead in terms of size. The > macro trick I suggested should have fixed that, but I admit the macro > is a bit ugly. The macro version also still has the overhead of having > to pass the length of the string when it detects a compile-time const. Thanks for the additional context. -- nathan
Commits
-
Improve various new-to-v18 appendStringInfo calls
- 928394b664bc 18.0 landed
-
Fixup various StringInfo function usages
- 8461424fd717 17.0 cited