CPUSetter Help

Process Limiting

There are four subsystems used by CPUSetter that are involved in limiting the cpu usage of a process.

  1. The user interface. Select which processes are to be limited and by how much each is limited. Also display the effect of the limiting. The user interface updates at a user selected interval (default 5s).
  2. Process Monitor. This subsytem runs every second and keeps track of all the processes in the system, calculating the percentage of the available cpu resource used by each process over the interval.
  3. Process Limiter. This subsystem runs every 30ms by default. The interval can be adjusted by the user in the CPUSetter Preferences window.
  1. Limit Adjuster. The limiting algorithm described above takes no account of inaccuracy of the interval timer (it may be off by several ms), latency in delivering signals to processes or retrieving process attributes from the macOS kernel. If nothing is done to compensate for these delays and inaccuracies, the limiter tends to be too agressive and the limited process will only ever achieve about 80% of it’s allowed cpu usage. Rather than compensating for individual sources of latency and errors, CPUSetter uses negative feedback principles to bring things back into line by using an adjuster that runs every 500ms.

Copyright © 2018-2022 B.R. Christianson (bryan@whatroute.net)