On Sat, Sep 28, 2013 at 11:11 PM, Heikki Linnakangas < hlinnakan...@vmware.com> wrote:
> On 28.09.2013 12:44, David Rowley wrote: > >> The macro for test 4 was as follows: >> #define appendStringInfoStringConst(**buf, s) appendBinaryStringInfo(buf, >> (s), sizeof(s)-1) >> > > If that makes any difference in practice, I wonder if we should just do: > > #define appendStringInfoString(buf, s) appendBinaryStringInfo(buf, (s), > strlen(s)) > > With a compiler worth its salt, the strlen(s) will be optimized into a > constant, if s is a constant. If it's not a constant, we'll just end up > calling strlen(), like appendStringInfoString would anyway. That would turn > a single function call into two in all of the non-constant callsites, > though, bloating the code, so it might not be a win overall. > > Nice idea. I quick test shows that this works with the MS compiler I'm using on windows. appendStringInfoString in 0.249000 sec <--- appendStringInfo with %s in 1.135000 sec appendStringInfo in 1.295000 sec appendStringInfoStringConst with in 0.245000 sec Regards David > - Heikki >