Re: Numeric performances

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

In response to

Responses

Browse pgsql-general by date

  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?