mirror of https://github.com/python/cpython
Add build option for faster loop execution.
This commit is contained in:
parent
cdcf887999
commit
dc1d1ba9cf
|
@ -1042,6 +1042,11 @@ Tools/Demos
|
||||||
Build
|
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
|
- Patch #786737: Allow building in a tree of symlinks pointing to
|
||||||
a readonly source.
|
a readonly source.
|
||||||
|
|
||||||
|
|
|
@ -2159,7 +2159,18 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
||||||
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
|
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
|
||||||
case JUMP_ABSOLUTE:
|
case JUMP_ABSOLUTE:
|
||||||
JUMPTO(oparg);
|
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;
|
continue;
|
||||||
|
#endif
|
||||||
|
|
||||||
case GET_ITER:
|
case GET_ITER:
|
||||||
/* before: [obj]; after [getiter(obj)] */
|
/* before: [obj]; after [getiter(obj)] */
|
||||||
|
|
Loading…
Reference in New Issue