You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Usually doctest's action's [Run documentation doctest1 job takes around 12 minutes2 to execute. Most of this time is taken by the internal framework doctest.py3. The issue is caused by unparallelized execution of tests.
Solution
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.
I was waiting for a feedback because I might've missed something :) My schedule is a bit tight lately, but I will try to find a time to implement it (hopefully in a week or two).
Issue
Usually doctest's action's [Run documentation doctest1 job takes around 12 minutes2 to execute. Most of this time is taken by the internal framework doctest.py3. The issue is caused by unparallelized execution of tests.
Solution
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.@AlexWaygood @erlend-aasland
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 ↩
The text was updated successfully, but these errors were encountered: