Re: Pre-alloc ListCell's optimization
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Robert Haas <robertmhaas@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2012-05-17T15:30:25Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Replace the parser's namespace tree (which formerly had the same
- a4996a895399 8.1.0 cited
-
Turns out that my recent elimination of the 'redundant' flatten_andors()
- 56c88772911b 8.1.0 cited
* Robert Haas (robertmhaas@gmail.com) wrote: > So I guess the first question here is - does it improve performance? > > Because if it does, then it's worth pursuing ... if not, that's the > first thing to fix. Alright, so I've done some pgbench's using all default configs with just a straight up './configure' and pgbench -S -T 300, 3 runs each and then averaged: llist_opt: 9289 tps HEAD: 9286 tps I realize we see tons of palloc() calls happening but now I'm wondering if they really contribute all that match time, overall. Also, I'm wondering if all the benefit from removing the palloc()'s is being sucked up by the regression in list_concat(). A few folks have mentioned just going whole-hog and doing all list allocations in blocks of 8, which would actually allow us to go back to an O(1) list_concat, though we wouldn't be able to free the 2nd list passed to list_concat in that case, which may or may not be acceptable, based on how necessary those couple pfree's we had previously are. Thanks, Stephen