Author tim.peters
Recipients eric.araujo, georg.brandl, michael.driscoll, orsenthil, python-dev, rhettinger, sandro.tosi, smichr, tim.peters
Date 2013-09-16.00:17:22
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAExdVN=dVquv3vrkL1th5Mt1owYtDuXoYy3eccFa3RN1T4+iTQ@mail.gmail.com>
In-reply-to <CAPOVWOSpOk4cbRDhjodjqJ-Oywf=L9TeTk3C+fqDhF=UrYPonQ@mail.gmail.com>
Content
[Senthil Kumaran]
> I am unaware of the optimization technique you refer to as
> well, it will helpful if you could point to any resource.

It's an old trick since the very first Pythons:  global lookups are
much slower than local lookups (the difference between the LOAD_GLOBAL
and LOAD_FAST opcodes in CPython).  Putting:

     ..., _fast=slow, ...

in an argument list means we endure the slow lookup (of `slow`) only
once, when the function is first defined.  When the function is
_called_, that binding is available via the local (much faster lookup)
variable `_fast`.

Purely a speed trick, but can make a real difference in very heavily
used functions.

And it's a Good Idea to put a leading underscore on such arguments.
It's never intended that users pass values for them.
History
Date User Action Args
2013-09-16 00:17:24tim.peterssetrecipients: + tim.peters, georg.brandl, rhettinger, smichr, orsenthil, eric.araujo, sandro.tosi, python-dev, michael.driscoll
2013-09-16 00:17:23tim.peterslinkissue14927 messages
2013-09-16 00:17:22tim.peterscreate