develooper Front page | perl.perl5.porters | Postings from May 2010

RE: [PATCH] shift; optimization

Thread Previous | Thread Next
Jan Dubois
May 3, 2010 13:20
RE: [PATCH] shift; optimization
Message ID:
On Mon, 03 May 2010, Reini Urban wrote:
> 2010/5/3 Ruslan Zakirov <>:
> > While testing a simple benchmark script I noticed that threaded
> > version is 25% faster. I suspect that the code may be is not thread
> > safe, however don't know anything about perl threads.
> This is because threaded passes the my_perl struct on the stack, PL_op
> is just 4(%esi).

Note that fox XS code this is only true if you


Otherwise my_perl will actually be redefined to *Perl_get_context(),
which will fetch the actual my_perl from thread-local storage, which
will be really slow.

> Accessing stack locals is much faster than accessing a global.

So please make sure you define PERL_NO_GET_CONTEXT in your modules
if you are an XS author.  It is not on by default for backwards
compatibility reasons only.


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About