Description
Issue
Usually doctest's action's "Run documentation doctest"1 job takes around 12 minutes2 to execute. Most of this time is taken by the internal framework doctest.py3. The cause of the issue is GC regression in Python 3.13.
Potential Solution
Fix #124567
Additional Improvements
Improve doctest performance
Since the tests are not interconnected (between different doc files), they can be easily parallelized. I suggest using ProcessPoolExecutor
that will be suitable to "bypass" GIL (assuming that tasks are CPU-bound). Github runners have 4 cores available4, so, potentially, it can speed up execution by up to 4 times.
Footnotes
-
https://github.com/python/cpython/blob/7ac933e2609b2ef9b08ccf9c815b682b0e1ede2a/.github/workflows/reusable-docs.yml#L108 ↩
-
https://github.com/python/cpython/actions/runs/8922903843/job/24506021604 ↩
-
https://github.com/python/cpython/blob/main/Lib/doctest.py ↩
-
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories ↩