Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tlkh/asitop
Perf monitoring CLI tool for Apple Silicon
https://github.com/tlkh/asitop
apple-silicon cli cpu gpu m1 macos
Last synced: 26 days ago
JSON representation
Perf monitoring CLI tool for Apple Silicon
- Host: GitHub
- URL: https://github.com/tlkh/asitop
- Owner: tlkh
- License: mit
- Created: 2021-10-27T15:50:16.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-18T05:07:51.000Z (7 months ago)
- Last Synced: 2024-10-12T21:14:58.347Z (28 days ago)
- Topics: apple-silicon, cli, cpu, gpu, m1, macos
- Language: Python
- Homepage: https://tlkh.github.io/asitop/
- Size: 2.32 MB
- Stars: 3,376
- Watchers: 30
- Forks: 146
- Open Issues: 50
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# asitop
![PyPI - Downloads](https://img.shields.io/pypi/dm/asitop)
Performance monitoring CLI tool for Apple Silicon
![](images/asitop.png)
```shell
pip install asitop
```## What is `asitop`
A Python-based `nvtop`-inspired command line tool for Apple Silicon (aka M1) Macs.
* Utilization info:
* CPU (E-cluster and P-cluster), GPU
* Frequency and utilization
* ANE utilization (measured by power)
* Memory info:
* RAM and swap, size and usage
* (Apple removed memory bandwidth from `powermetrics`)
* Power info:
* CPU power, GPU power (Apple removed package power from `powermetrics`)
* Chart for CPU/GPU power
* Peak power, rolling average display`asitop` uses the built-in [`powermetrics`](https://www.unix.com/man-page/osx/1/powermetrics/) utility on macOS, which allows access to a variety of hardware performance counters. Note that it requires `sudo` to run due to `powermetrics` needing root access to run. `asitop` is lightweight and has minimal performance impact.
**`asitop` only works on Apple Silicon Macs on macOS Monterey!**
## Installation and Usage
`asitop` is a Python-based command line tool. You need `pip` to download and install `asitop`. macOS already comes with Python, to install `pip`, you can follow an [online guide](https://phoenixnap.com/kb/install-pip-mac). After you install `asitop` via `pip`, you can use it via the Terminal.
```shell
# to enter password before start
# this mode is recommended!
sudo asitop# it will prompt password on start
asitop# advanced options
asitop [-h] [--interval INTERVAL] [--color COLOR] [--avg AVG]
optional arguments:
-h, --help show this help message and exit
--interval INTERVAL Display interval and sampling interval for powermetrics (seconds)
--color COLOR Choose display color (0~8)
--avg AVG Interval for averaged values (seconds)
```## How it works
`powermetrics` is used to measure the following:
* CPU/GPU utilization via active residency
* CPU/GPU frequency
* Package/CPU/GPU/ANE energy consumption
* CPU/GPU/Media Total memory bandwidth via the DCS (DRAM Command Scheduler)[`psutil`](https://github.com/giampaolo/psutil) is used to measure the following:
* memory and swap usage
[`sysctl`](https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/sysctl.3.html) is used to measure the following:
* CPU name
* CPU core counts[`system_profiler`](https://ss64.com/osx/system_profiler.html) is used to measure the following:
* GPU core count
Some information is guesstimate and hardcoded as there doesn't seem to be a official source for it on the system:
* CPU/GPU TDP
* CPU/GPU maximum memory bandwidth
* ANE max power
* Media engine max bandwidth## Why
Because I didn't find something like this online. Also, just curious about stuff.
## Disclaimers
I did this randomly don't blame me if it fried your new MacBook or something.