Re: bytea performance tweak - Mailing list pgsql-jdbc

From Andreas Schmitz
Subject Re: bytea performance tweak
Date
Msg-id 20110622142205.GB2652@summalogicae.occamlabs.local
Whole thread Raw
In response to Re: bytea performance tweak  (Oliver Jowett <oliver@opencloud.com>)
List pgsql-jdbc
Oliver Jowett wrote:

Hi,

> On 22 June 2011 16:24, Oliver Jowett <oliver@opencloud.com> wrote:
>
> > I've seen enough weird performance behavior from the JIT in the past
> > to be inherently suspicious of anything that claims to be a speedup
> > without numbers to back it up.
> > If we have a benchmark to work from, then I'm sure there's even more
> > performance we can squeeze out of it.
>
> FWIW here's a quick microbenchmark.
> Andreas' patch is about 5x faster than the current code.
> A version using a one-dimensional lookup array is marginally faster again (7%).
>
> $ java -server -version; uname -a; time java -server -classpath . Benchmark 5
> java version "1.6.0_24"
> Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
> Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
> Linux downpour 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC
> 2011 x86_64 x86_64 x86_64 GNU/Linux
> original code, 1000                          1161632 iterations in
> 5018679 us     4.32 us/iteration
> 2D array lookup, 1000                        6025844 iterations in
> 4948308 us     0.82 us/iteration
> 1D array lookup, 1000                        6361396 iterations in
> 4996605 us     0.79 us/iteration
> original code, 100000                           9196 iterations in
> 5019373 us   545.82 us/iteration
> 2D array lookup, 100000                        57049 iterations in
> 4999200 us    87.63 us/iteration
> 1D array lookup, 100000                        61162 iterations in
> 5000197 us    81.75 us/iteration
>
> real    1m55.117s
> user    1m55.400s
> sys    0m0.210s
>
> (I also tried some variations with induction variables but got no real
> speedup and enough weird results to make me think it's confusing the
> JIT)
>
> There is also a bug in the original patch that I noticed along the way
> (the initialization of HEX_LOOKUP doesn't use lo2/hi2) - fixed in the
> benchmark code.

wow, I wouldn't have expected that much of a speedup. I've also tested
using a one dimensional array, but my crappy main method did not see
much of a difference. Thanks for benchmarking in detail!

Best regards, Andreas

Attachment

pgsql-jdbc by date:

Previous
From: Andreas Schmitz
Date:
Subject: Re: bytea performance tweak
Next
From: Oliver Jowett
Date:
Subject: Re: bytea performance tweak