Re: micro-optimizing json.c
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Jeff Davis <pgsql@j-davis.com>, Joe Conway <mail@joeconway.com>,
Andrew Dunstan <andrew@dunslane.net>,
Davin Shearer <davin@apache.org>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-12-08T03:28:50Z
Lists: pgsql-hackers
Nathan Bossart <nathandbossart@gmail.com> writes: > I did both of these in v2, although I opted to test that the first > character after the optional '-' was a digit instead of testing that it was > _not_ an 'I' or 'N'. Yeah, I thought about that too after sending my message. This version LGTM, although maybe the comment could be slightly more verbose with explicit reference to Inf/NaN as being the cases we need to quote. > I think there are some similar improvements that we can make for > JSONTYPE_BOOL and JSONTYPE_CAST, but I haven't tested them yet. I am suspicious of using appendStringInfo(result, "\"%s\"", ...); in each of these paths; snprintf is not a terribly cheap thing. It might be worth expanding that to appendStringInfoChar/ appendStringInfoString/appendStringInfoChar. regards, tom lane
Commits
-
Micro-optimize datum_to_json_internal() some more.
- 0d1adae6f739 17.0 landed
-
Micro-optimize JSONTYPE_NUMERIC code path in json.c.
- dc3f9bc549d4 17.0 landed