On Fri, Apr 11, 2025 at 10:40:57AM +1200, David Rowley wrote: > On Fri, 11 Apr 2025 at 02:51, Nathan Bossart <nathandboss...@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