Documentation
Download CPUSetter
Overview

CPUSetter adjusts the number of active cores in your cpu(s). It can also enable/disable hyperthreading on supported cpus.

To do this requires administrator access to the machine and a small privileged helper program is installed when you first execute CPUSetter.
A convenient link to the system Activity Monitor is provided so you can observe the impact of changes.
Authentication with your administrator credentials is required to make changes to your system.

The Processes window allows you to change the priority (nice value) of your processes, and to also limit the maximum CPU usage of any of your processes. You cannot adjust processes that do not belong to you.

Be aware that you may severely impact the operation of your system by adjusting these parameters.

Why would you ever want to do this?
  • Because you can!
  • Some software is licensed based on the number of active CPUs in the machine. CPUSetter will enable you to be within the terms of your software license.
  • Power Saving.
  • Disabling Hyperthreading can help mitigate Spectre/Meltdown expoits.
  • CPU resources can be allocated according to your particular workflow.
  • Many Pro Tools users have reported much better throughput by disabling hyperthreading.
  • Probably other reasons too, just I can't think of them

The Handbrake process has been limited to a maximum of 100% CPU usage (i.e. 1 whole core from the 4 available) and also reniced to a priority of 19. It is constrained as can be seen by it requesting more CPU resource than it is allowed to use.

Download CPUSetter 1.6.12

CPUSetter 1.6.12 - Changes and Features

Changes

With the addition of the Swap graph in the System Stats window, you will need to adjust the spacing of each graph. I apologise for the inconvenience.

  • Build with Xcode 15.4.
  • Use Sparkle 2.6.2.
  • System Stats: Added Preferences/Settings button.
  • System Stats: Do not display unused CPU rows.
  • System Stats: Show Swap space allocated and used.
  • System Stats: Show CPU/GPU/Memory temperatures.
  • Processes: Added column to show process arguments.

Download CPUSetter 1.6.11

CPUSetter 1.6.11 - Changes and Features

Changes

  • Build with Xcode 15.0.
  • Use Sparkle 2.5.0.
  • Fix startup crash on macOS Sonoma.

Download CPUSetter 1.6.10

CPUSetter 1.6.10 - Changes and Features

Changes

  • Build with Xcode 14.3.
  • Use Sparkle 2.4.1.
  • PayPal: New button to meet latest PayPal requirements.

Download CPUSetter 1.6.9

CPUSetter 1.6.9 - Changes and Features

Changes

  • Build with Xcode 14.2.
  • Use Sparkle 2.3.2.
  • Processes - Added column Prevent Sleep.
  • Processes - Added number stepper control to adjust cpu limit value of selected process.

Download CPUSetter 1.6.8

CPUSetter 1.6.8 - Changes and Features

Changes

  • Build with Xcode 14.1.
  • Use Sparkle 2.3.0.
  • Requires macOS 10.13 (High Sierra) or later.
  • Option to apply CPU settings at system boot.
  • Updated Preferences to Settings for macOS Ventura.

Download CPUSetter 1.6.7

CPUSetter 1.6.7 - Changes and Features

Changes

  • Build with Xcode 13.4.1.
  • Use Sparkle 2.2.0 updater.
  • Display current CPU frequency.

Download CPUSetter 1.6.6

CPUSetter 1.6.6 - Changes and Features

Changes

  • Build with Xcode 13.1.
  • Use Sparkle 1.27.1 updater.
  • Display minimum fan speed.

Download CPUSetter 1.6.5

CPUSetter 1.6.5 - Changes and Features

Changes

  • Refactored private frameworks for memory and efficiency improvements.

Download CPUSetter 1.6.4

CPUSetter 1.6.4 - Changes and Features

Enhancements

  • Plot average network rates in System Stats pane.
  • Right-click on a process in the table now has an option to show the files opened by the process.

Fixed

Please note: Some functionality is not available on Apple Silicon (M1) machines.
  • Refactor handler for nettop.
  • Fixed layout of icon/text in the Processes table.

Download CPUSetter 1.6.3

CPUSetter 1.6.3 - Changes and Features

Changes

Please note: Some functionality is not available on Apple Silicon (M1) machines.
  • Build with Xcode 12.5.
  • M1 machines: Show processor type on graph.
  • M1 machines: Show process kind in Processes window.
  • M1 machines: Plot number of Rosetta2 processes on System Stats graph.

Download CPUSetter 1.6.2

CPUSetter 1.6.2 - Changes and Features

Fixed

Please note: Some functionality is not available on Apple Silicon (M1) machines.
  • Documentation updated.
  • Display fan speeds in System Stats window.

Download CPUSetter 1.6.1

CPUSetter 1.6.1 - Changes and Features

Fixed

Please note: Some functionality is not available on Apple Silicon (M1) machines.
  • Possible crash at startup.

Download CPUSetter 1.6.0

CPUSetter 1.6.0 - Changes and Features

Changes

Please note: Some functionality is not available on Apple Silicon (M1) machines.
  • Disable unused controls on Apple Silicon.
  • Scale values on GPU graph(s).
  • Fix time scaling on Apple Silicon.
  • Fix restoring CPU control value on start up.

Download CPUSetter 1.5.6

CPUSetter 1.5.6 - Changes and Features

Added

  • Built as universal binary application.
  • Show disk i/o per sec.

Download CPUSetter 1.5.5

CPUSetter 1.5.5 - Changes and Features

Fixed

  • Restore preferences in the correct order.

Download CPUSetter 1.5.4

CPUSetter 1.5.4 - Changes and Features

New

  • Added a control to choose virtual CPUs before physical.
  • Show HT in the system menubar when hyperthreading is enabled.
  • Show logical and physical CPU counts in the menubar menu.

Download CPUSetter 1.5.3

CPUSetter 1.5.3 - Changes and Features

New

  • Added a cli version of cpusetter. Extract the program with CPUSetter/ExtractCLI ...

Download CPUSetter 1.5.2

CPUSetter 1.5.2 - Changes and Features

New

  • Updated French localisations (Thank you Jean-Pierre Kuypers).
  • Show Idle Wakeups/sec in Processes window.
  • Show Energy Impact in Processes window.
  • Added preference for System Stats Window update interval.
  • Added Patreon as a means to provide financial support for ongoing maintenance and development.

Fixed

  • Use runloop to poll for power source changes.
  • Reduce sample interval when no processes are limited.

Download CPUSetter 1.5.1

CPUSetter 1.5.1 - Changes and Features

New

  • Allow separate settings for Battery and A/C power.
  • Enable/Disable low priority process throttling.
  • Show/Hide the Dock icon.

Fixed

  • Compatibility issue with Padlock widget for macOS 10.13 and earlier.
  • Allow process names with embedded '.' character in network accounting.
  • PID 0 (kernel_task) was missing from the Processes window.

Download CPUSetter 1.5.0

CPUSetter 1.5.0 - Changes and Features

New

  • System Stats - added power usage graph.

Fixed

  • System Stats - report memory usage in MiB.
  • cpusetterhelper - fixed memory leak.

Download CPUSetter 1.4.15

CPUSetter 1.4.15 - Changes and Features

New

  • French localization - thank you Jean-Pierre Kuypers.

Fixed

  • Sleep detection was working incorrectly in System Stats window.
  • Try again to find missing application icons.

Download CPUSetter 1.4.14

CPUSetter 1.4.14 - Changes and Features

New

  • Added Load Average graph.
  • Show graph in the system Dock.
  • Sparkle upgraded to version 1.22.0.
  • Upgraded to Swift 5.1 (Xcode 11).

Fixed

  • Application Icon in Processes window has fixed position.
  • Do not show graph for unusable GPU (e.g. Intel GPU on iMac).
  • Memory leak in IORegistry traversal.

Download CPUSetter 1.4.13

CPUSetter 1.4.13 - Changes and Features

New

  • Added standard Font controls to System Stats and Processes windows.

Download CPUSetter 1.4.12

CPUSetter 1.4.12 - Changes and Features

New

  • System Stats now graphs network interfaces.
  • Processes shows network usage of each process - macOS 10.12 and later.

Fixed

  • 32 bit counter overflow in rate calculations.
  • 'Off-by-one' error in y axis of graphs.
  • Use I/O kit to discover connected disks.

Download CPUSetter 1.4.11

CPUSetter 1.4.11 - Changes and Features

New

  • Added System Stats window for graphing system vital signs, along with a comprehensive set of preferences to configure the layout.

Download CPUSetter 1.4.10

CPUSetter 1.4.10 - Changes and Features

Fixed

  • Integer overflow error at high I/O rates.
  • Window title was wrong font.

Download CPUSetter 1.4.9

CPUSetter 1.4.9 - Changes and Features

Enhancements

  • Show memory usage in Processes table.
  • Updated with Xcode 10.2, Swift 5

Download CPUSetter 1.4.8

CPUSetter 1.4.8 - Changes and Features

Enhancements

  • Show i/o throughputs in menubar.
  • Show i/o throughputs in Processes table.
  • Selector to show/hide columns in Processes table.

Fixed

  • Always terminate helper on exit.

Download CPUSetter 1.4.7

CPUSetter 1.4.7 - Changes and Features

Enhancements

  • Show current cpu usage in menubar menu.
  • Sparkle updated to version 1.21.3

Fixed

  • CPUSetter would hang on wakeup from sleep.

Download CPUSetter 1.4.6

CPUSetter 1.4.6 - Changes and Features

Enhancements

  • Addded menubar control.
  • Relaunch if CPUSetter has been translocated.
  • Sparkle updated to version 1.21.2

Download CPUSetter 1.4.5

CPUSetter 1.4.5 - Changes and Features

Fixes

  • Fixed excessive CPU usage on waking from deep sleep.

Download CPUSetter 1.4.4

CPUSetter 1.4.4 - Changes and Features

Enhancements

  • Updated Preferences window controller.
  • Added documentation and Help button.

Fixes

  • Action Menu items were not being properly enabled.
  • Limiter/Adjustment controlls moved to PID Preferences.
  • Fixed compatibility issues with macOS 10.10 (Yosemite).

Download CPUSetter 1.4.3

CPUSetter 1.4.3 - Changes and Features

Update

  • Fixed 'limited' application freezing in the background.

Enhancements

  • Cache Application icons for improved performance.
  • Actual CPU usage of a limited process is closer to the nominal value.
  • Added (optional) PID controller for CPU limiting.
  • CPULimiter cannot be killed or adjusted from within itself.

Fixes

  • Processes window is restored to its previous location.
  • Fixed compatibility issue with macOS 10.12 (Sierra).

Download CPUSetter 1.4.1

CPUSetter 1.4.1 - Changes and Features

Enhancements

  • CPUSetter is notarized by Apple.
  • Context menu added to rows in Processes table. Right/Control click a row to see the menu.
  • Save/Restore 'reniced' processes.
  • Stop CPUSetter from sleeping when it is limiting processes.
  • Added authorisation control to bottom of Processes Window.
  • Action menu item to Show/Hide processes from other users.

Fixes

  • No bugs reported.

Download CPUSetter 1.4.0

CPUSetter 1.4.0 - Changes and Features

Enhancements

  • Compiled with Xcode 10, Swift 4.2.
  • New window for CPU limiting and renicing processes.
  • New Preferences pane.

Fixes

  • No bugs reported.

Download CPUSetter 1.3.2 (MacosX 10.10 and later)

CPUSetter 1.3.2 - Changes and Features
  • Added option for Launch at Login.

Download CPUSetter 1.3.1 (MacosX 10.10 and later)

CPUSetter 1.3.1 - Changes and Features
  • Hide the Hyper Threading control if not supported by the hardware. (e.g. intel i5)

Download CPUSetter 1.3.0 (MacosX 10.10 and later)

CPUSetter 1.3.0 - Changes and Features
  • Updated to Swift 4.

Download CPUSetter 1.2.0 (MacosX 10.10 and later)

CPUSetter 1.2.0 - Changes and Features
  • Rewritten in Swift.
  • Future updates via Sparkle framework.

Download CPUSetter 1.1.0 (MacosX 10.8 and later)

Download CPUSetter 1.1.0 MacosX 10.7(Lion)

CPUSetter 1.1.0 - Changes and Features
  • Window layout modified
  • Restore window to previous location at startup
  • Preference setting to restore configuration at startup or after system sleep
  • Preference setting to record configuration changes via Notification

Download CPUSetter 1.0.0

CPUSetter 1.0.0 - Changes and Features
  • First public release