-
-
Notifications
You must be signed in to change notification settings - Fork 274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add instrumentation support for develop #2019
Conversation
✅ Deploy Preview for maturin-guide ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
Transient failure on freebsd:
|
Should we make log/tracing non-optional? I don't see a reason to build a maturin that doesn't support |
Sounds fine to me. |
https://build.opensuse.org/request/show/1178629 by user mia + anag+factory - Update to 1.6.0 * Add pypi name validation gh#PyO3/maturin#2007 * Add JSON schema generation gh#PyO3/maturin#2005 * Detect compiling from Linux gnu to Linux musl as cross compiling gh#PyO3/maturin#2010 * Upgrade uniffi to 0.27.0 gh#PyO3/maturin#2021 * Add instrumentation support for develop gh#PyO3/maturin#2019 * Make tracing-subscriber mandatory gh#PyO3/maturin#2022 * Import hook upgrade gh#PyO3/maturin#2024 * Add uv as develop backend command gh#PyO3/maturin#2015 * Also try uv in PATH in develop --uv gh#PyO3/maturin#2026 * docs: update pyo3 to match tutorial gh#PyO3/maturin#2029 * Add support for AIX gh#PyO3/maturin#2030 * Remove rust-cpython from project init/new template gh#PyO3/maturin#2034 * Only run uv tests
The main bottleneck in the edit-debug cycle for maturin users is
maturin develop
. I've added tracing instrumentation and a profiling cargo profile to get information what's slow there (besides the obvious rustc/llvm performance). The instrumentation is basic and needs to be adjusted as optimizations are made.This change allows e.g. running
to get timing information, here for warm cache pyo3-mixed:
You can see that surprisingly,
cargo build
isn't the bottleneck for this case. We can use this show the impact of the uv integration :)An annoying side effect is that tracing subscriber always shows the active spans so the logging gets more verbose.
We can also plug tracing-durations-export into maturin:
The
profiling
profile allows using samply, perf or other profilers with maturin.