| From: | PFC <lists(at)peufeu(dot)com> |
|---|---|
| To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Dumb Micro-Optimization |
| Date: | 2008-04-10 11:20:11 |
| Message-ID: | op.t9d63xejcigqcu@apollo13.peufeu.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
* Dumb Optimization #1:
- Add executorFunc function pointer to struct PlanState
- in ExecProcNode.c -> ExecProcNode() :
- upon first execution, set executorFunc to the function corresponding to
node type
- next calls use function pointer
Effect : removes a switch (nodeTag(node)) which otherwise executes for
every tuple returned by every node
Gain :
- 4% CPU time on SELECT sum(an integer column) FROM a table of one million
rows
- nil on selects returning few rows obviously
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Martin Edlman | 2008-04-10 11:34:06 | Re: pl/PgSQL, variable names in NEW |
| Previous Message | Dave Cramer | 2008-04-10 10:44:20 | Re: Re: [HACKERS] How embarrassing: optimization of a one-shot query doesn't work |