{"id":13908239,"url":"https://github.com/dehydratedpotato/socpowerbud","last_synced_at":"2025-04-13T05:52:09.686Z","repository":{"id":46825028,"uuid":"430403707","full_name":"dehydratedpotato/socpowerbud","owner":"dehydratedpotato","description":"Sudoless alternative to powermetrics for Apple Silicon; realtime CPU \u0026 GPU frequency, volts, usage, etc.","archived":false,"fork":false,"pushed_at":"2024-05-20T19:31:05.000Z","size":351,"stargazers_count":78,"open_issues_count":2,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-13T05:51:59.347Z","etag":null,"topics":["apple-m1","apple-m1-silicon","apple-silicon","cpu","cpu-frequency","cpu-monitoring","cpu-profiling","cpu-usage","gpu","gpu-frequency","gpu-monitoring","gpu-profiler","gpu-usage","ioreport","macos","powermetrics"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dehydratedpotato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-21T15:24:27.000Z","updated_at":"2025-04-10T12:47:45.000Z","dependencies_parsed_at":"2024-05-20T20:52:23.470Z","dependency_job_id":"5ea21326-1f3d-4b79-8b15-3e41b4199619","html_url":"https://github.com/dehydratedpotato/socpowerbud","commit_stats":null,"previous_names":["dehydratedpotato/socpowerbuddy"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehydratedpotato%2Fsocpowerbud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehydratedpotato%2Fsocpowerbud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehydratedpotato%2Fsocpowerbud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dehydratedpotato%2Fsocpowerbud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dehydratedpotato","download_url":"https://codeload.github.com/dehydratedpotato/socpowerbud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670505,"owners_count":21142901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-m1","apple-m1-silicon","apple-silicon","cpu","cpu-frequency","cpu-monitoring","cpu-profiling","cpu-usage","gpu","gpu-frequency","gpu-monitoring","gpu-profiler","gpu-usage","ioreport","macos","powermetrics"],"created_at":"2024-08-06T23:02:34.350Z","updated_at":"2025-04-13T05:52:09.618Z","avatar_url":"https://github.com/dehydratedpotato.png","language":"Objective-C","funding_links":[],"categories":["Objective-C","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"\n\u003ch1\u003e\n    socpowerbud\n    \u003ca href=\"https://github.com/dehydratedpotato/socpowerbud/releases\"\u003e\n        \u003cimg alt=\"Releases\" src=\"https://img.shields.io/github/release/BitesPotatoBacks/SocPowerBuddy.svg\"/\u003e\n    \u003c/a\u003e\n\u003c!--     \u003ca href=\"\"\u003e\n       \u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/platform-macOS-lightgray.svg\"/\u003e\n    \u003c/a\u003e --\u003e\n    \u003ca href=\"https://github.com/dehydratedpotato/socpowerbud/blob/main/LICENSE\"\u003e\n        \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/BitesPotatoBacks/SocPowerBuddy.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/dehydratedpotato/socpowerbud/stargazers\"\u003e\n        \u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/BitesPotatoBacks/SocPowerBuddy.svg\"/\u003e\n    \u003c/a\u003e\n\u003c/h1\u003e\n\nSudoless utility to profile average frequency, voltage, residency, and more on Apple Silicon!\n\n- **Table of contents**\n  - **[Project Deets](#project-deets)**\n  - **[Example Output](#example-output)**\n  - **[Features](#features)**\n  - **[Future Stuff](#future-stuff)**\n  - **[Installation, Usage, and Making](#installation-usage-and-making)**\n    - [Install using Homebrew](#install-using-homebrew)\n    - [Install manually](#install-manually)\n    - [Building yourself](#building-yourself)\n  - [Outside Influence](#outside-influence)\n  - [Compatibility Notes](#compatibility-notes)\n  - [Contribution](#contribution)\n\n___\n\n## Project Deets\nThis tool samples counter values from the IOReport and returns formatted results for various metrics. It's written in Objective-C because NS types made things easier, but it's starting to get all mixed around and junk from a bunch of half-refactoring...At least it's getting more effecient over time or something? Idk. Activity on this project is kind of random. Ive got other things in life to do so fixes may be a bit slow.\n\nIt is based on reverse engineering `powermetrics`, and reports pretty much every statistic offered by `powermetrics -s cpu_power,gpu_power`, plus some extras here and there (see [full metric list](#features) and [example output](#example))... but it doesn't need `sudo` to run. Because, uh, needing to be system admin in order to monitor Apple Silicon frequencies is dumb (yeah, I'm looking at you, `powermetrics`). So here you go! No administrative privileges needed! Yaaay.\n\n### Example Output\n**Note:** The following is a complete output of `socpwrbud -a` running on a M2 Pro 16\" Macbook Pro.\n\u003cdetails\u003e\n\n\u003csummary\u003eExpand Example to see...warning, it's a large one\u003c/summary\u003e\n\n```\nProfiling Apple M3 Pro (T6030)...\n\nIntegrated Graphics \n    Average frequency: 609 mhz\n    Average voltage:   692 mv\n    Active residency:  2.46 %\n    Idle residency:    97.54 %\n\n    DVFS distribution:\n        338 MHz (655 mv): 46.49%\n        796 MHz (715 mv): 33.53%\n        924 MHz (740 mv): 19.98%\n\n6-Core ECPU\n    Average frequency: 2079 mhz\n    Average voltage:   957 mv\n    Active residency:  28.44 %\n    Idle residency:    71.56 %\n\n    DVFS distribution:\n        744 MHz (790 mv): 33.40%\n        2748 MHz (1040 mv): 66.60%\n\n    Core #0\n        Average frequency: 2110 mhz\n        Average voltage:   960 mv\n        Active residency:  19.12 %\n        Idle residency:    80.88 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 31.84%\n            2748 MHz (1040 mv): 68.16%\n\n    Core #1\n        Average frequency: 2171 mhz\n        Average voltage:   968 mv\n        Active residency:  9.73 %\n        Idle residency:    90.27 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 28.79%\n            2748 MHz (1040 mv): 71.21%\n\n    Core #2\n        Average frequency: 1808 mhz\n        Average voltage:   923 mv\n        Active residency:  8.90 %\n        Idle residency:    91.10 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 46.89%\n            2748 MHz (1040 mv): 53.11%\n\n    Core #3\n        Average frequency: 1920 mhz\n        Average voltage:   937 mv\n        Active residency:  2.83 %\n        Idle residency:    97.17 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 41.30%\n            2748 MHz (1040 mv): 58.70%\n\n    Core #4\n        Average frequency: 2038 mhz\n        Average voltage:   951 mv\n        Active residency:  2.01 %\n        Idle residency:    97.99 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 35.43%\n            2748 MHz (1040 mv): 64.57%\n\n    Core #5\n        Average frequency: 2061 mhz\n        Average voltage:   954 mv\n        Active residency:  1.13 %\n        Idle residency:    98.87 %\n\n        DVFS distribution:\n            744 MHz (790 mv): 34.27%\n            2748 MHz (1040 mv): 65.73%\n\n6-Core PCPU\n    Average frequency: 2057 mhz\n    Average voltage:   897 mv\n    Active residency:  12.09 %\n    Idle residency:    87.91 %\n\n    DVFS distribution:\n        696 MHz (790 mv): 42.27%\n        2424 MHz (890 mv): 1.65%\n        2988 MHz (960 mv): 49.49%\n        3420 MHz (1090 mv): 3.64%\n        4056 MHz (1150 mv): 2.94%\n\n    Core #0\n        Average frequency: 2033 mhz\n        Average voltage:   890 mv\n        Active residency:  4.61 %\n        Idle residency:    95.39 %\n\n        DVFS distribution:\n            696 MHz (790 mv): 41.27%\n            2424 MHz (890 mv): 2.99%\n            2988 MHz (960 mv): 53.91%\n            3420 MHz (1090 mv): 1.81%\n            4056 MHz (1150 mv): 0.01%\n\n    Core #1\n        Average frequency: 1974 mhz\n        Average voltage:   889 mv\n        Active residency:  7.62 %\n        Idle residency:    92.38 %\n\n        DVFS distribution:\n            696 MHz (790 mv): 44.88%\n            2424 MHz (890 mv): 1.23%\n            2988 MHz (960 mv): 49.61%\n            3420 MHz (1090 mv): 3.78%\n            4056 MHz (1150 mv): 0.50%\n\n    Core #2\n        Average frequency: 3122 mhz\n        Average voltage:   1031 mv\n        Active residency:  0.20 %\n        Idle residency:    99.80 %\n\n        DVFS distribution:\n            696 MHz (790 mv): 5.59%\n            2424 MHz (890 mv): 1.67%\n            2988 MHz (960 mv): 30.18%\n            3420 MHz (1090 mv): 62.37%\n            4056 MHz (1150 mv): 0.19%\n\n    Core #3\n        Average frequency: 4006 mhz\n        Average voltage:   1141 mv\n        Active residency:  0.35 %\n        Idle residency:    99.65 %\n\n        DVFS distribution:\n            2988 MHz (960 mv): 4.69%\n            4056 MHz (1150 mv): 95.31%\n\n    Core #4\n        Average frequency: 0 mhz\n        Average voltage:   0 mv\n        Active residency:  0.00 %\n        Idle residency:    100.00 %\n\n        DVFS distribution:\n\n    Core #5\n        Average frequency: 3228 mhz\n        Average voltage:   1032 mv\n        Active residency:  0.04 %\n        Idle residency:    99.96 %\n\n        DVFS distribution:\n            2988 MHz (960 mv): 44.42%\n            3420 MHz (1090 mv): 55.58%\n```\n\n\u003c/details\u003e\n\n# Features\n\nThe following metrics are available sampled unit per-cluster:\n- Active and Idle Residencies\n- Active Frequencies and Voltage\n- DVFS Distribution \n- ~~Power Consumption~~ (missing for now)\n- ~~Micro architecture names~~ (missing for now)\n\nPer-core metrics of the same are available for the CPUs.\n\nI would love to support ANE stuff, there are remnants in `powermetrics` for gettig that data, but no real keys in IOReport for them. \n\n# Future Stuff\n- I need to set back up homebrew\n- I need to add power consumption metrics again\n- I would like to report microarchs\n\n# Installation, Usage, and Making\n**Note:** Tool usage is listed by `socpwrbud -h`, or `--help` if you're a verbose kinda person.\n\n### Install using Homebrew\nLet me get back to you on that. \n\n\u003c!--\n1. If you dont have Hombrew, then what the heck? [Install it already, geez](https://brew.sh/index_ko).\n2. Add my tap using `brew tap dehydratedpotato/tap`\n3. Install the tool with `brew install socpwrbud`\n4. Run `socpwrbud`! (dont ask why \"power\" is shortened for the binary name)\n--\u003e\n\n### Install manually\n1. Download the bin from [latest release](https://github.com/dehydratedpotato/socpowerbud/releases).\n2. Unzip the downloaded file into your desired dir (such as `/usr/bin`) \n4. Run `socpwrbud`! (still, dont ask why \"power\" is shortened for the binary name)\n\n### Building yourself\nXcode proj is in source but you can build with `make` if you so desire...\n___\n\n## Outside Influence\nThis project managed to reach influence into the IOReport related metric gathering on [NeoAsitop](https://github.com/op06072/NeoAsitop).\n\n## Compatibility Notes\nI'll try to get a better up to date table here some day in time, maybe. Apple breaks stuff a lot so I can't confirm anything. M1, M2, M3, M3 pro should work fine at least. It's usually Max and Ultras that have problem, or at least a chip with more than 1 cluster per CPU type in it.\n\n\n## Contribution\nIf any bugs or issues are found, please let me know in the [issues](https://github.com/dehydratedpotato/socpowerbud/issues) section. If the problem is related to missing IOReport entries, please share the output of the `iorepdump` tool found in the [latest release](https://github.com/dehydratedpotato/socpowerbud/releases/latest). Feel free to open a PR if you know what you're doing :smile:\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdehydratedpotato%2Fsocpowerbud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdehydratedpotato%2Fsocpowerbud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdehydratedpotato%2Fsocpowerbud/lists"}