◐ Shell
clean mode source ↗

bpo-45115: Enable optimiaztions on Windows debug build by vstinner · Pull Request #28181 · python/cpython

Conversation

@vstinner

On Windows, enable compiler optimizations on the debug build to make
tests run faster and to reduce the stack memory usage, especially
with static inline functions used in Python public header files.

The Windows GitHub Actions now build Python in debug mode to catch
more bugs.

https://bugs.python.org/issue45115

On Windows, enable compiler optimizations on the debug build to make
tests run faster and to reduce the stack memory usage, especially
with static inline functions used in Python public header files.

The Windows GitHub Actions now build Python in debug mode to catch
more bugs.

@vstinner

bpo-45115: Enable optimiaztions on Windows debug build #28181

Ooops, there is a typo in the commit message. It can be fixed when the PR is merged.

@vstinner

I modified my PR #28128 to see if enabling compiler optimizations fix test_exceptions when Py_TYPE() macro is converted to a static inline function.

@vstinner

[Reference] Timing of a release build (with optimizations), from PR #28180:

  • Windows x86: Total duration: 9 min 39 sec (test_asyncio.test_sendfile_close_peer_in_the_middle_of_receiving() re-run)
  • Windows x64: Total duration: 9 min 9 sec

[With this PR] GitHub Action jobs with Python built in debug mode with optimizations:

  • Windows x86: Total duration: 13 min 23 sec.
  • Windows x64: Total duration: 10 min 30 sec (test_asyncio.test_sendfile_close_peer_in_the_middle_of_receiving() re-run).

Currently, the slowest job is the Address Sanitizer. IMO as soon as the Windows jobs are faster than the Address Sanitizer job, the little slowdown of this PR on GitHub Action is accepted. And it's way better to test Python on Windows in debug mode!

cc @pablogsal @ambv @corona10 @zware @zooba

@vstinner

zooba

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking this PR explicitly until we've had the discussion on the issue tracker.

@bedevere-bot

When you're done making the requested changes, leave the comment: I have made the requested changes; please review again.

@vstinner

Blocking this PR explicitly until we've had the discussion on the issue tracker.

Ok, I convert this PR to a draft to prevent merging it by mistake.

@vstinner

Reviewers

@zooba zooba zooba requested changes

@AA-Turner AA-Turner Awaiting requested review from AA-Turner AA-Turner will be requested when the pull request is marked ready for review AA-Turner is a code owner

@ezio-melotti ezio-melotti Awaiting requested review from ezio-melotti ezio-melotti will be requested when the pull request is marked ready for review ezio-melotti is a code owner

@hugovk hugovk Awaiting requested review from hugovk hugovk will be requested when the pull request is marked ready for review hugovk is a code owner

@webknjaz webknjaz Awaiting requested review from webknjaz webknjaz will be requested when the pull request is marked ready for review webknjaz is a code owner

@itamaro itamaro Awaiting requested review from itamaro itamaro will be requested when the pull request is marked ready for review itamaro is a code owner

Labels