python / python/cpython

Improve the documentation of profiling with "perf maps"

Open
#137,019 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

docs OS-linux OS-mac performance topic-profiling
Dominant language
Python
Stars
77.2k
Forks
35.9k
PR merge metrics
PR metrics pending

Description

The documentation lives here: https://github.com/python/cpython/blob/d6cf05b5d00abbfdf9008d646c14c6ef7c83b61a/Doc/howto/perf_profiling.rst

Before #136461, cpython only had support for Linux perf profiling. But with this PR it now supports both Linux and macOS through samply. I updated the documentation to include this, but it's not super great currently because previously it was written with the assumption that it was only supported by Linux perf. So it would be good to restructure this doc in a better way, and add more information related to macOS profiling using samply.

Also samply supports both perf modes so it would be good to clarify when to use them.

cc @pablogsal @hugovk

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Doc/howto/perf_profiling.rst and review the changes from PR #136461 to understand the current Linux perf and macOS samply coverage. Compare samply's supported perf modes and reorganize the guide so platform support, setup, and mode selection are clear. Done means the documentation accurately explains profiling on both Linux and macOS and when to use each mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, macos, python
Domain
documentation, performance
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.