Message197848
| 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. |
|