Archive for the ‘App Tamer’ Category

App Tamer 2.7.2 fine tunes its menu bar icon, fixes installation problem

Wednesday, May 11th, 2022

A new release of App Tamer is available for download! Version 2.7.2 incorporates a number of fixes to tighten up the layout of the text in App Tamer’s menu bar icon, and improves its compatibility with Bartender‘s multiple options for the spacing of menu bar icons. It also corrects a bug that could result in App Tamer’s helper app failing to install correctly on some Macs.

And relevant to App Tamer users using M1 Macs: Howard Oakley at The Eclectic Light Company has done his usual thorough benchmarking work and determined that the efficiency cores on Apple’s M1 processors use a shocking 70% less energy than the performance cores when doing the same amount of work (thanks Howard!). Why do we care? Because App Tamer lets you automatically run apps on those efficiency cores when they’re in the background, so can markedly reduce the amount of power used by your M1 Mac!

As usual, this update is free for anyone who already has a license for App Tamer 2.x. Details and download links are on the App Tamer Release Page.

App Tamer 2.7.1 fixes compatibility issues and bugs

Thursday, March 31st, 2022

Version 2.7.1 of App Tamer is now available, addressing a number of issues and also providing localized online help for French-speaking users.

Compatibility has been improved with Bartender and Steam, and a number of user interface problems and window placement issues have been fixed. User interface glitches on older versions of macOS have also been eliminated.

There’s been a lot of interest in App Tamer’s new capability of running apps on the efficiency cores of M1 Macs, including requests to do so even when the app is frontmost. You can do that by holding down the Option key while clicking on an app in App Tamer’s process list – an extra “Also slow this app when it’s in front” checkbox will appear. Just turn on that checkbox (now that version 2.7.1 properly enables it).

Full release notes and download links are on the App Tamer release page.

App Tamer 2.7 is now officially available!

Wednesday, March 2nd, 2022

Version 2.7 of App Tamer is out of beta testing and available for download. Details and download links are on the App Tamer release page.

In case you missed the beta versions and accompanying blog posts, the marquee feature of this release is the ability to run an app on the M1’s efficiency cores instead of on the more power-hungry performance cores when you’re not actively using it. As with the rest of App Tamer’s capabilities, it’s a simple matter of selecting the running app and clicking on a checkbox:

App Tamer 2.7 also augments its interface with additional performance information to let you manage CPU and power consumption intelligently. In addition to showing overall CPU usage, it breaks it down by processor core type, giving separate stats for the M1 performance and efficiency cores. They’re included textually and graphically in App Tamer’s window, and also (optionally) as tiny ‘P’ and ‘E’ values in its menu bar display:

Conserving battery and limiting CPU usage is really as simple as clicking that checkbox, but there’s a lot going on under the hood. This blog post discusses how things operate in more detail.

App Tamer 2.7b2 fine tunes support for Apple Silicon

Thursday, February 24th, 2022

Version 2.7b2, the second public beta release of App Tamer 2.7, is available on the App Tamer Beta Testing page. If you’ve recently downloaded beta 1, just choose “Check for Update” from its utility menu or in the Options tab of App Tamer’s Preferences window to get the new version.

The changes in beta 2 are relatively small, correcting interactions between the new capability of running apps on the M1 processor’s efficiency cores and several existing App Tamer options. In addition, App Tamer’s online help has been brought up to date, and a bug affecting the CPU usage graphs in beta 1 has been fixed. Details and download links are available on the beta testing page.

If you have any feedback or bugs to report on the 2.7 beta releases, please share them in the comments here or by emailing AppTamer@stclairsoft.com. Version 2.7 is on track for release soon, barring any further bug reports or changes.

App Tamer 2.7b1: Advanced support for Apple Silicon processors

Thursday, February 17th, 2022

There’s now a public beta version of App Tamer 2.7 available for download. The big deal in this iteration is support for the Performance and Efficiency cores (or “P and E cores” for short) in Apple’s M-series processors.

P and E core usage statistics

As you can see in the image on the left, App Tamer now displays graphs of P and E core usage as well as overall CPU usage. You’ll get these automatically if you’re running App Tamer on an M1-powered Mac.

Note that P and E stats are shown as a proportion of total CPU power available, so on an M1 Pro processor (8 P cores and 2 E cores), the E core number will max out at 20% (2 cores out of the 10 available), while the P core number will max out at 80%. This may be a little counter-intuitive at first, but it was even more confusing to represent them as a percentage of each core type. In that scenario, “CPU Used by All Apps” could show 50%, with E core usage at 100% and P core usage at 38% – which doesn’t make sense to most normal humans.

Running background apps on E cores

This is the really cool part. When you click on an app in the process list to change its settings, there’s an additional “Run this app on the CPU’s efficiency cores” checkbox, as you can see in the screenshot below.

I explained the basics of this feature in a previous post. It works like App Tamer’s other CPU-saving capabilities in that it’s applied to an app anytime that app is not frontmost. If you turn on the checkbox for Safari, any time that you leave Safari running in the background while you’re using another app, Safari will be switched to the processor’s E cores. This saves power and leaves the P cores free to handle higher priority tasks.

Note that the effects of this feature are similar to App Tamer’s existing “CPU throttling” capability, which is what you get when you turn on the “Slow down this app if it uses more than X%” checkbox. However, there are a couple of advantages:

  • The E cores actually consume less power by design
  • There’s no overhead when running an app on E cores, whereas throttling an app’s CPU usage requires App Tamer to actively manage the app’s execution

So, basically, running an app on the processor’s E cores saves more power than throttling it.

Of course, the two aren’t mutually exclusive – you can run an app on the CPU’s E cores and throttle it while it’s there if it’s still using too much processing power. App Tamer will let you turn on both checkboxes to do this.

What about Intel-powered Macs?

If you’re not using a fancy new M1 or M2 (soon?) powered Mac, you won’t get this new feature. However, that checkbox does still do something. It’s named “Run this app as a low-priority process” on Intel Macs, and it will use the macOS system scheduler to reduce the priority of the app, both in terms of CPU usage and disk and network I/O. This will reduce its impact on other apps and cut its energy usage somewhat, but not nearly as much as it does on M-series Macs.

OK already! Where do I download it?

Go to the App Tamer beta testing page. And if you have suggestions, find a bug, or want to argue with me about how E and P core usage is displayed, send email to AppTamer@stclairsoft.com.

App Tamer experimentation: Running apps on M1 efficiency cores

Friday, January 21st, 2022

So I was reading Howard Oakley’s Eclectic Light Company blog, as I often do (and you should too), and he mentioned the taskpolicy command line app, which I wasn’t aware of before. taskpolicy allows you to demote a process to “background priority,” making it run more slowly by giving it a lower priority for its disk and network access and – key point here – on M1-powered Macs, also runs the process on the M1’s efficiency cores instead of on the performance cores.

That got me thinking… if there’s a command line tool to do this, there must be a system API to make this happen, too. And lo and behold, the setpriority( ) system call will actually perform this neat trick, even though the man page lies and says it won’t.

I made some changes to App Tamer yesterday to add this, and App Tamer now has a new checkbox:

Turn the checkbox on, and whenever an app isn’t frontmost, App Tamer will give that app background priority, reducing its disk and network priority and switching it over to run on an M1 efficiency core. Running a few apps that consume quite a bit of CPU looks like this in Activity Monitor:

In my initial testing, the feature seems to work quite nicely. App Tamer automatically moves apps between the performance and efficiency cores as you switch between apps. So far, I haven’t found any downsides to this – but then again, I just added the feature yesterday and have only done limited testing. It’d be great to actually quantify whether this delivers additional battery life.

If you’d like to give it a try, you can download App Tamer 2.7d1 here. Just unzip it and run it, then click on a cpu-hungry app in App Tamer’s process list and turn on “Run this app on an M1 efficiency core” – that’s it. App Tamer will automatically lower the app’s priority when it isn’t frontmost.

Update: There’s now a beta version of App Tamer 2.7 that includes an almost-finished version of this feature.

Note for users of Intel-based Macs: On your machine, the checkbox is named “Run this app as a low-priority process” because your Mac doesn’t have separate efficiency and performance cores 😢. The app will be demoted to background priority so it uses fewer CPU and I/O resources, but I’m afraid there’s no fancy cpu-juggling involved.

App Tamer 2.6.5: Refinements and Fixes, plus “hide everything”

Thursday, January 20th, 2022

Version 2.6.5 of App Tamer is available, sporting fixes for a few things that have come to my attention since the last release. Specifically, App Tamer’s Force Quit command, which you can get to by Control-clicking on any app in the process list, now ensures that the app is terminated even if it’s being very uncooperative.

Some UI inconsistencies have also been fixed, including small changes to the text color and font size used in App Tamer’s icon in your menu bar. And there’s a fix to App Tamer’s high-cpu-usage-detection warnings so that if some helper process (like one of Safari’s web content renderers) uses lots of CPU, App Tamer tells you to limit Safari’s CPU usage to fix the problem, rather than complaining about the helper process itself.

This release also includes the “inverting” of an existing feature to fill the niche left by the demise of the app Hocus Focus. App Tamer already offered an option to hide particular apps after they’d been idle for a certain amount of time, but if you wanted that to apply to all applications, you had to turn the feature on for every app individually. Now you can set up all apps to be hidden after 5 minutes (or whatever) in one fell swoop by using these commands in Terminal:

  defaults write com.stclairsoft.AppTamer hideWhenIdle 1

  defaults write com.stclairsoft.AppTamer minutesUntilHide 5

The first command turns on the “hideWhenIdle” feature, while the second sets the “minutesUntilHide” time to 5. You can obviously use any delay you want for minutesUntilHide. To turn the feature off again, just set hideWhenIdle to zero:

  defaults write com.stclairsoft.AppTamer hideWhenIdle 0

Also, if you want a few apps to wait longer to hide, you can override the time using App Tamer’s normal hide-when-idle feature, accessible in the settings popover that you get by clicking on an app in the process list. Or to prevent the app from being hidden regardless of how long it’s been idle, enter zero into the edit box next to the slider.

As usual, concise release notes and download links are available on the App Tamer Release page, or if you’re already running App Tamer, by choosing “Check for Update” from utility menu at the bottom of App Tamer’s window.

App Tamer 2.6.3: Better efficiency and compatibility

Monday, June 21st, 2021

Version 2.6.3 of App Tamer improves its own efficiency, as well as addressing a few issues that have been brought up by users. When collecting and managing CPU statistics of the processes running on your Mac, App Tamer now uses two additional strategies to reduce its own processor usage. And on Apple Silicon-powered M1 Macs, its helper application (which is in charge of managing the CPU usage of other apps) schedules its work on the M1’s “efficiency cores”, which use less power than the CPU’s “performance cores”.

On top of that, several bugs and user interface issues were corrected to prevent settings for critical processes from being changed to values you really don’t want (trust me 😁), and fixing a rare issue with Amazon Photos.

The full release notes and download links are on the App Tamer Release Page.

App Tamer 2.6.2: Quick UI Fixes and an Experimental Assassin for Runaway Processes

Tuesday, April 6th, 2021

Version 2.6.2 of App Tamer is available, fixing a couple of user interface bugs that could trip up new users. When newly installed, the size of App Tamer’s window was much smaller than it was supposed to be, making it hard to see the list of tamed processes. Compounding this was a change in version 2.6.1 that resulted in the mouse cursor not turning into a little arrow when you hovered over the edges of the window, so you couldn’t tell it’s resizable.

Another glitch, a result of changes that Apple made in Big Sur, could result in the names of processes being truncated in the process list. That’s been fixed as well.

You can find the full release notes and download links to App Tamer 2.6.2 on the App Tamer Release Page.

An experimental feature for a very specific system problem:

And now for the geeky, experimental feature: It’s come to my attention that some people are living with bugs in macOS that can result in essential background processes (like lsd and pkd) suddenly consuming tons of CPU time and bringing their Mac to a standstill. Despite chasing around to try and find the culprit, they often can’t resolve the problem without completely reinstalling the system. And apparently, App Tamer’s process throttling can’t limit the CPU usage without effectively disabling whatever function those processes are supposed to be performing.

So I’ve added a “runaway process assassin” to App Tamer. You specify which processes to watch, and if the CPU usage of any of them stays above a specified limit for a certain amount of time, App Tamer just kills the process. This certainly isn’t ideal, but works fine for system daemons that macOS will automatically relaunch whenever they’re needed. This feature is probably only useful to a few people, but because it isn’t something that’s easy to code up with an AppleScript or shell script, I figured I’d just add it. App Tamer is already collecting the CPU statistics anyway.

To configure this, you have to use Terminal. Paste in these commands, hitting the Return key after each one:

defaults write com.stclairsoft.AppTamer killRunawayProcesses 1
defaults write com.stclairsoft.AppTamer runawayProcessCPULimit 50
defaults write com.stclairsoft.AppTamer runawayProcessTimeLimit 20
defaults write com.stclairsoft.AppTamer runawayProcessList "lsd pkd"

Here’s what’s going on with the commands:

  • The first command turns on the killRunawayProcesses feature. 
  • The second sets runawayProcessCPULimit to 50. You can set that to whatever CPU percentage you want.
  • The third sets runawayProcessTimeLimit to 20. This is how long (in seconds) the process has to be above its limit before App Tamer kills it.
  • The fourth sets runawayProcessList to watch lsd and pkd. You can add as many processes as you want here, separated by spaces. For full-fledged applications, use the app’s bundle identifier.

When App Tamer kills a process, it will put up a notification to let you know. You’ll probably want to make sure you’ve allowed App Tamer to display notifications in System Preferences > Notifications.

To turn the whole thing back off, just use:

defaults write com.stclairsoft.AppTamer killRunawayProcesses 0

WARNING: Don’t turn this on unless you have a real need for it! You could potentially kill a service that’s necessary for your Mac to operate correctly. However, if you do need and make use of this feature, I’d appreciate hearing from you in the comments or at support@stclairsoft.com.

App Tamer 2.6.1 delivers compatibility and bug fixes

Thursday, March 4th, 2021

Version 2.6.1 of App Tamer is now available! This maintenance release of our app for taking control of your Mac’s CPU and battery delivers a number of bug-fixes. It works correctly with the Origin game launcher, as well as with processes that are launched using ‘sh’ and ‘tcsh’ shell scripts (which some ‘normal’ applications do under the hood).

App Tamer 2.6.1 also prevents you from completely stopping apps that are distributed via the Setapp subscription service because that can cause issues with Setapp. If you want to reduce the CPU usage of those apps, simply have App Tamer throttle them to 1% CPU rather than completely stopping them.

And finally, this release allows you to make App Tamer’s process window smaller than its default size and keep it that way. Previously, it’d insist on enlarging the window back to its default size when you closed it and opened it again. Oops 🙄

The full release notes and a download link are on the App Tamer Release Page.