This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Unified locals/consts array + register-based instructions
Type: performance Stage:
Components: Interpreter Core Versions: Python 3.3
process
Status: closed Resolution: postponed
Dependencies: Superseder:
Assigned To: Nosy List: collinwinter, djc, jyasskin, loewis, pitrou, terry.reedy
Priority: normal Keywords:

Created on 2009-02-26 14:08 by pitrou, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (5)
msg82756 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-26 14:08
There is no patch here, this entry is just a reminder of some of the
ideas that have been suggested to experiment with ways to speedup the
Python VM (djc, who is nosied, has said he'd be willing to try working
on it):

- unify the local variables and constants arrays (this costs a copy of
the constants array at each frame creation, but it should be negligible
since frames are reused and the copy can probably be a dumb memcpy)
- devise new instructions, or a whole new instruction set, which takes
its arguments from this array

As a simple way to experiment, one could start with a new instruction
named e.g. BINARY_ADD_FAST which would take one 16-bit arg, whose 8
upper bits would be the index of the first argument, and whose 8 lower
bits would be the index of the second argument. The result would be
pushed on top of the stack.

It could also be measured whether having a special value (255) to mean
"pop the argument off the pop of the stack" gives negative (because of
overhead) or positive (because of less bytecode) results.
msg82767 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2009-02-26 17:14
Please don't store such information in the bug tracker. If you think you
need public storage of it, consider using the wiki.

OTOH, I'm skeptical why a reminder is necessary in the first place: if
this is a project that interests you, you surely won't forget about it,
right?
msg82768 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-02-26 17:22
> OTOH, I'm skeptical why a reminder is necessary in the first place: if
> this is a project that interests you, you surely won't forget about it,
> right?

The reason I don't just store it somewhere inside my head is that it's a
collective reminder :-). Also, djc (Dirkjan Ochtman) asked me to open an
entry as he wants to try to work on it.
msg139197 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2011-06-26 19:09
This a type of feature request and such a change would only go into a new version. Given the absence of response from djc, perhaps this should be closed as languishing-postponed?
msg139241 - (view) Author: Dirkjan Ochtman (djc) * (Python committer) Date: 2011-06-27 07:33
Yeah, I probably won't work on this anytime soon. I think this has also become less interesting as pypy has made progress.
History
Date User Action Args
2022-04-11 14:56:46adminsetgithub: 49625
2011-06-27 08:52:10pitrousetstatus: open -> closed
resolution: postponed
2011-06-27 07:33:21djcsetmessages: + msg139241
2011-06-26 19:09:29terry.reedysetnosy: + terry.reedy

messages: + msg139197
versions: + Python 3.3, - Python 3.1, Python 2.7
2009-02-26 17:22:55pitrousetmessages: + msg82768
2009-02-26 17:14:07loewissetnosy: + loewis
messages: + msg82767
2009-02-26 14:08:52pitroucreate