From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Neil Conway <neilc(at)samurai(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: nodeAgg perf tweak |
Date: | 2004-12-03 01:51:38 |
Message-ID: | 11086.1102038698@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Neil Conway <neilc(at)samurai(dot)com> writes:
> - yours would mean that int8inc() and similar aggregates wouldn't ever
> need to do palloc(); mine would require a palloc() every k calls to the
> transition function.
No. The current code involves two pallocs per cycle, one inside the
aggregate function to construct its result value, and then one in
datumCopy to copy the result into the proper context. Your patch
reduces that to 1 + 1/k pallocs per cycle, mine to zero.
The fact that it's a central fix for all aggregate functions is
definitely a nice feature of your approach, but I am concerned about the
possible side-effects on user-defined aggregate functions that may not
work as you expect them to. I think it's safer to keep the aggregate
code behaving as-is and get the performance win in the individual
functions. There are not that many aggregates that we really care that
much about.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Gevik Babakhani | 2004-12-03 01:55:13 | Re: Code documentation |
Previous Message | Neil Conway | 2004-12-03 01:44:40 | Re: nodeAgg perf tweak |