[sqlite] Use of __builtin_expect in SQLite

2016-02-08 Thread Roger Binns
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 07/02/16 22:39, Matthias-Christian Ott wrote: > Amdahl's law is not applicable here and describes a completely > different problem. SQLite does not involve concurrency. Amdahl's law very much applies, and doesn't explicitly only involve concurrency

[sqlite] Use of __builtin_expect in SQLite

2016-02-08 Thread Scott Hess
On Sun, Feb 7, 2016 at 10:39 PM, Matthias-Christian Ott wrote: > On 2016-02-08 04:31, Roger Binns wrote: > > On 07/02/16 00:56, Dominique Pell? wrote: > >> I'm curious about the outcome on SQLite benchmarks. > > > > About a year ago I tried them out on some tight code (non-SQLite) that > > absolu

[sqlite] Use of __builtin_expect in SQLite

2016-02-08 Thread Matthias-Christian Ott
On 2016-02-08 04:31, Roger Binns wrote: > On 07/02/16 00:56, Dominique Pell? wrote: >> I'm curious about the outcome on SQLite benchmarks. > > About a year ago I tried them out on some tight code (non-SQLite) that > absolutely had to use less CPU time. I couldn't get them to make any > difference

[sqlite] Use of __builtin_expect in SQLite

2016-02-08 Thread Simon Slavin
On 8 Feb 2016, at 3:31am, Roger Binns wrote: > Taking a step back, the reasons why it had no measureable effect are > simple. The processors are getting better at branch prediction, > better at mitigating mispredicted branches, getting even faster > compared to memory. The compilers are gettin

[sqlite] Use of __builtin_expect in SQLite

2016-02-07 Thread Roger Binns
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 07/02/16 00:56, Dominique Pell? wrote: > I'm curious about the outcome on SQLite benchmarks. About a year ago I tried them out on some tight code (non-SQLite) that absolutely had to use less CPU time. I couldn't get them to make any difference out

[sqlite] Use of __builtin_expect in SQLite

2016-02-07 Thread Dominique Pellé
Hi I see that SQLite has many small optimizations being checked-in. Wouldn't it help to use the following macros and use unlikely(...) for error paths: #ifdef __GNUC__ #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else #define likely(x)