From: | PFC <lists(at)peufeu(dot)com> |
---|---|
To: | "Vincenzo Romano" <vincenzo(dot)romano(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Numeric performances |
Date: | 2007-06-04 11:17:49 |
Message-ID: | op.ttd9nzwccigqcu@apollo13 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
This is a 32 bit CPU by the way.
Consider this :
- There are 100K rows
- The CPU executes about 3 billion instructions per second if everything
is optimum
- "SELECT sum(n) FROM test", takes, say 60 ms
This gives about 1800 CPU ops per row.
A Float addition versus an Int addition is a drop in the sea.
I believe the marked difference between Floats/Ints (faster) and
Numeric/Bigint (slower) comes from being passed by value or by pointers.
A single access which misses the CPU cache and has to go fetch data from
the real RAM spends a lot more cycles than the simple loops in a NUMERIC
addition which will hit L1 cache.
Nowadays cache access patterns matter more than how many actual CPU
instructions are executed...
>> forum_bench=> SELECT sum(i) FROM test;
>> Temps : 46,589 ms
>> forum_bench=> SELECT sum(f) FROM test;
>> Temps : 63,865 ms
>> forum_bench=> SELECT sum(b) FROM test;
>> Temps : 157,018 ms
>> forum_bench=> SELECT sum(n) FROM test;
>> Temps : 124,816 ms
From | Date | Subject | |
---|---|---|---|
Next Message | Tino Wildenhain | 2007-06-04 11:22:01 | Re: multimaster |
Previous Message | ivan.hou | 2007-06-04 11:15:12 | Auto Vacuum question? |