| From: | Neil Conway <neilc(at)samurai(dot)com> |
|---|---|
| To: | tgl(at)postgresql(dot)org (Tom Lane) |
| Cc: | pgsql-committers(at)postgresql(dot)org |
| Subject: | Re: pgsql-server/src/backend executor/nodeAgg.c ut ... |
| Date: | 2002-10-04 18:12:53 |
| Message-ID: | 87smzm9ioq.fsf@mailbox.samurai.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
tgl(at)postgresql(dot)org (Tom Lane) writes:
> Tweak a few of the most heavily used function call points to zero out
> just the significant fields of FunctionCallInfoData, rather than MemSet'ing
> the whole struct to zero. Unused positions in the arg[] array will
> thereby contain garbage rather than zeroes. This buys back some of the
> performance hit from increasing FUNC_MAX_ARGS. Also tweak tuplesort.c
> code for more speed by marking some routines 'inline'. All together
> these changes speed up simple sorts, like count(distinct int4column),
> by about 25% on a P4 running RH Linux 7.2.
I didn't know we were still doing optimizations / features for 7.3 :-)
But very interesting results -- the 25% percent improvement is really
surprising. Do you think there's more low-hanging fruit in this area?
Also, is the use of inline functions encouraged instead of macros? As
of C99 they're a standard part of the language, but I'm not sure how
many compilers implemented them before that (GCC did, of course).
Cheers,
Neil
--
Neil Conway <neilc(at)samurai(dot)com> || PGP Key ID: DB3C29FC
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian - CVS | 2002-10-04 19:06:10 | pgsql-server/doc TODO |
| Previous Message | Bruce Momjian | 2002-10-04 17:36:38 | Re: pgsql-server/src/backend executor/nodeAgg.c ut ... |