On Sat, 2009-01-10 at 11:06 -0600, Kenneth Marshall wrote:
> > Separating mix() and final() should have some performance benefit,
> > right?
> >
> Yes, it does but the results can be swamped by other latencies in the
> code path. Tests such as Tom's benchmark of the underlying functions is
> needed to isolate the timings effectively or a benchmark like Greenplum's
> that will benefit from a more efficient function.
>
Ok. I isolated the function itself by just doing:
-- 10 million rows of random()::text
EXPLAIN ANALYZE SELECT hashtext(t) FROM randomtext;
I ran 5 times on both old and new code, eliminating the top and bottom
and taking the average of the remaining 3, and I got a 6.9% performance
improvement with the new code.
I tried quickly with a few other data types and got similar results.
It's obviously a small microbenchmark, but that's good enough for me.
Thanks!
Regards,Jeff Davis