Christopher Smith added the comment: On Sun, Oct 6, 2013 at 12:14 AM, Raymond Hettinger <rep...@bugs.python.org>wrote:
> > Raymond Hettinger added the comment: > > Christopher, this tracker item needs to die. It is wasting everyone's > time (and churning code) over nothing. > > but it's not quite dead yet... > FYI, I moved the _int=int for shuffle inside the function because the > assignment was outside of the inner loop, so we weren't getting any real > benefit. > but cf Tim's comment regarding the advantage of leaving it in the arg list so that the lookup is fast: [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. ---------- So by removing it from the arg list you have perhaps caused a regression in performance of shuffle. Other than that, everything looks fine to me. Thanks, Chris ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14927> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com