Hi, The recent optimization work on ceval.c and frame objects introduced regressions and the situation is stuck for 4 months (bpo-43760). Right now, maybe the best would be to revert the 2 commits in the 3.10 branch, to get more time in Python 3.11 development cycle to solve these issues. (1) "The DISPATCH() macro is not as efficient as it could be (move PyThreadState.use_tracing)" https://bugs.python.org/issue43760 This change introduced an incompatible C API change. It's not documented in What's New in Python 3.10 and there is no solution for the 4 broken projects (including Cython). I proposed a C API but so far, nobody implemented it. Another option is to fix each project since the list is short. Right now, only 4 projects are known to be broken. Fixing Cython is not enough, you need to get a new release of broken projects (using Cython) to regenerate the C code with the updated Cython. (2) "Performance regression 3.10b1 and later on Windows: Py_DECREF() not inlined in PGO build" https://bugs.python.org/issue45116 Changes made in bpo-43760 caused a performance regression on the PGO build of Windows. It's a tricky issue about thresholds in compiler PGO optimization, inlining or not static inline functions, number of statements per function, etc. It was proposed to workaround the specific case of the huge _PyEval_EvalFrameDefault() function (3500 lines of C code) by converting again some static inline functions to macros. They were macros in Python 3.8 and were fine in Python 3.9. The performance regression with the Windows PGO build was introduced by the recent ceval.c work. Victor -- Night gathers, and now my watch begins. It shall not end until my death.