From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Simplifying Param lookups |
Date: | 2006-04-21 23:00:49 |
Message-ID: | 200604212300.k3LN0nJ25799@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> Another thing I noticed while looking at Gavin Hamill's test case is
> that according to gprof, it's spending a remarkably large fraction of
> its time in lookupParam():
>
> Each sample counts as 0.01 seconds.
> % cumulative self self total
> time seconds seconds calls s/call s/call name
> 13.87 20.28 20.28 3219733 0.00 0.00 lookupParam
> 11.20 36.65 16.37 6128411 0.00 0.00 LWLockAcquire
> 8.86 49.60 12.95 6128574 0.00 0.00 LWLockRelease
> 5.73 57.97 8.37 12654786 0.00 0.00 _bt_compare
> 5.60 66.15 8.18 2746677 0.00 0.00 PinBuffer
> 5.53 74.24 8.09 669262 0.00 0.00 s_lock
> 5.17 81.80 7.56 1380848 0.00 0.00 slot_deform_tuple
> 3.72 87.24 5.44 2750944 0.00 0.00 UnpinBuffer
> 3.27 92.02 4.78 2772808 0.00 0.00 hash_search
> 2.23 95.28 3.26 16960980 0.00 0.00 FunctionCall2
>
> I don't recall ever seeing this function high in a profile before, but
> in a complex function it's not so implausible as all that. lookupParam
> works by linear search, which means that accessing N different
> parameters will take O(N^2) time.
>
> AFAICS the only reason for a linear search is that the params.c code
> still has vestigial support for named rather than numbered Params.
> That's been dead code since the system left Berkeley, and I don't know
> of anything on the horizon that would make us want to revive it.
> (In places where we'd support named params, it'd make more sense to
> reduce the names to numbers before runtime anyway.)
>
> So I'm thinking about simplifying the ParamListInfo data structure
> down to a straight array indexed directly by parameter number.
> Anyone have a problem with that?
No problem, sounds smart.
--
Bruce Momjian http://candle.pha.pa.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Pflug | 2006-04-21 23:02:17 | Re: Google SoC--Idea Request |
Previous Message | Tom Lane | 2006-04-21 22:50:32 | Simplifying Param lookups |