From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Use static inline functions for Float <-> Datum conversions |
Date: | 2016-08-31 10:48:29 |
Message-ID: | dbb82a4a-2c15-ba27-dd0a-009d2aa72b77@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Now that we are OK with static inline functions, we can save some cycles
from floating-point functions, by turning Float4GetDatum,
Float8GetDatum, and DatumGetFloat8 into static inlines. They are only a
few instructions, but couldn't be implemented as macros before, because
they need a local union-variable for the conversion.
That can add up to significant speedups with float-heavy queries. For
example:
create table floats as select g::float8 as a, g::float8 as b, g::float8
as c from generate_series(1, 1000000) g;
select sum(a+b+c+1) from floats;
The sum query is about 4% faster on my laptop with this patch.
- Heikki
Attachment | Content-Type | Size |
---|---|---|
0001-Use-static-inline-functions-for-float-Datum-conversi.patch | application/x-patch | 5.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Fabrízio de Royes Mello | 2016-08-31 10:59:22 | Re: Exclude schema during pg_restore |
Previous Message | Fujii Masao | 2016-08-31 10:39:29 | Re: GIN logging GIN_SEGMENT_UNMODIFIED actions? |