Add build option for faster loop execution.

This commit is contained in:
Raymond Hettinger 2007-11-07 02:45:46 +00:00
parent cdcf887999
commit dc1d1ba9cf
2 changed files with 16 additions and 0 deletions

View File

@ -1042,6 +1042,11 @@ Tools/Demos
Build
-----
- Add a FAST_LOOPS build option that speeds-up looping by trading away
periodic threadstate and signal checking in tight loops. By default,
this option is turned-off. It should only be enabled in debugged,
performance critical applications.
- Patch #786737: Allow building in a tree of symlinks pointing to
a readonly source.

View File

@ -2159,7 +2159,18 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
case JUMP_ABSOLUTE:
JUMPTO(oparg);
#if FAST_LOOPS
/* Enabling this path speeds-up all while and for-loops by bypassing
the per-loop checks for signals. By default, this should be turned-off
because it prevents detection of a control-break in tight loops like
"while 1: pass". Compile with this option turned-on when you need
the speed-up and do not need break checking inside tight loops (ones
that contain only instructions ending with goto fast_next_opcode).
*/
goto fast_next_opcode;
#else
continue;
#endif
case GET_ITER:
/* before: [obj]; after [getiter(obj)] */