From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Alex Hunsaker <badalex(at)gmail(dot)com> |
Cc: | Tim Bunce <Tim(dot)Bunce(at)pobox(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Optimize PL/Perl function argument passing [PATCH] |
Date: | 2011-01-31 19:22:37 |
Message-ID: | 4D470BFD.1040400@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 01/15/2011 12:31 AM, Alex Hunsaker wrote:
> On Tue, Dec 7, 2010 at 07:24, Tim Bunce<Tim(dot)Bunce(at)pobox(dot)com> wrote:
>> Changes:
>>
>> Sets the local $_TD via C instead of passing an extra argument.
>> So functions no longer start with "our $_TD; local $_TD = shift;"
>>
>> Pre-extend stack for trigger arguments for slight performance gain.
>>
>> Passes installcheck.
> Cool, surprisingly in the non trigger case I saw up to an 18% speedup.
> The trigger case remained about the same, I suppose im I/O bound.
>
> Find attached a v2 with some minor fixes, If it looks good to you Ill
> mark this as "Ready for Commit".
>
> Changes:
> - move up a declaration to make it c90 safe
> - avoid using tg_trigger before it was initialized
> - only extend the stack to the size we need (there was + 1 which
> unless I am missing something was needed because we used to push $_TD
> on the stack, but we dont any more)
>
This looks pretty good. But why are we bothering to keep $prolog at all
any more, if all we're going to pass it is &PL_sv_no all the time? Maybe
we'll have a use for it in the future, but right now we don't appear to
unless I'm missing something.
cheers
andrew
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2011-01-31 19:26:27 | Re: Error code for "terminating connection due to conflict with recovery" |
Previous Message | Magnus Hagander | 2011-01-31 19:04:40 | Re: windows build docs |