psf / psf/pyperf

`pyperf system {tune,show}` on macOS

Open
#243 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
962
Forks
106
Avg merge
2d 18h
Merged PRs (30d)
4

Description

With the advent of LLM tools (eg: Claude, Codex), small optimizations are a gateway drug to contributing to the ecosystem. Many people, myself included, use a MacBook as a daily driver. However, there are many mechanisms in these machines and macOS itself that might make posted numbers not really trustworthy, even with --rigorous. I'm thinking about thermal pressure / throttling, coalescing, P/E cores, different power sources, low/high power mode, memory pressure, virtualization, noisy daemons in the background, etc. Of course, there's also pyperformance. Perhaps there's real value in extending system {tune,show} to this platform.

My understanding is that there's no macOS API for CPU affinity, but we can still check stuff (eg: pmset), provide actionable advice. There's taskpolicy and pthread_set_qos_class_self_np. The model is per worker, not global.

Perhaps the real issue here is improving our harness on macOS.

Contributor guide

No contributing guide indexed for this repository

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 the existing system tune and system show entry points and run them on macOS to document their current behavior. Research the macOS mechanisms named here, including pmset, taskpolicy, power modes, thermal pressure, and worker-level scheduling. Done should mean a defined macOS harness improvement with actionable output or controls and tests covering the supported behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.