Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ jobs:
- os_name: linux
runner: ubuntu-latest
rust_target: x86_64-unknown-linux-gnu
maturin_args: "--features profiler"
- os_name: linux-arm64
runner: ubuntu-24.04-arm
rust_target: aarch64-unknown-linux-gnu
maturin_args: "--features profiler"
- os_name: windows-amd64
runner: windows-latest
rust_target: x86_64-pc-windows-msvc
Expand All @@ -33,9 +35,11 @@ jobs:
- os_name: macos-intel
runner: macos-15-intel
rust_target: x86_64-apple-darwin
maturin_args: "--features profiler"
- os_name: macos-arm64
runner: macos-15
rust_target: aarch64-apple-darwin
maturin_args: "--features profiler"

steps:
- name: Check out repository
Expand Down Expand Up @@ -63,7 +67,7 @@ jobs:
shell: bash
env:
RSLOOP_PYTHON_VERSIONS: ${{ matrix.python_versions }}
run: scripts/build-wheels.sh --out dist --target "${{ matrix.rust_target }}"
run: scripts/build-wheels.sh --out dist --target "${{ matrix.rust_target }}" -- ${{ matrix.maturin_args }}

- name: Upload wheel artifacts
uses: actions/upload-artifact@v4
Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,13 +293,14 @@ finally:
rsloop.stop_profiler()
```

This starts a Tracy client inside the process. Build a release binary, open
`tracy-profiler.exe`, then connect to the running process while the profiled
This starts a Tracy client inside the process. Build a release binary, open the
Tracy desktop profiler, then connect to the running process while the profiled
code is executing.

The current Tracy feature set is aimed at local Windows profiling:
`enable`, `only-localhost`, `sampling`, and `flush-on-exit`. The last one helps
short-lived runs flush data before exit.
Linux and macOS release wheels are built with profiler support enabled. Other
builds still need `--features profiler` when built locally. The Tracy feature
set is aimed at local profiling: `enable`, `only-localhost`, `sampling`, and
`flush-on-exit`. The last one helps short-lived runs flush data before exit.

If the extension was built without `--features profiler`, `profile()` and
`start_profiler()` raise a runtime error.
Expand Down
2 changes: 2 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ Those four questions usually point you to the right part of the codebase.
## Profiling

Profiling support exists behind the Rust `profiler` feature and uses Tracy.
Release wheels for Linux and macOS include this feature; local development
builds need it enabled explicitly.

Example build:

Expand Down
Loading