Apple’s recent MacBook Pro models boast battery life that’s so much better than their predecessors’ that casual users may not worry about finding ways to conserve energy. With three or four hours of real-world use between charges, plenty of juice is available for visits to a coffeeshop, many domestic airline flights, or untethered work away from a desk.
However, if you plan to be away from power for longer stretches, or if your battery indicator dips into the low double-digit percentages, battery conservation becomes much more top-of-mind. You can extend your MacBook Pro’s battery life by taking advantage of the system’s capability to switch between its integrated and discrete graphics processing units (GPUs). More specifically, you can use Cody Krieger’s free gfxCardStatus to force your laptop to use its battery-sipping integrated GPU.
Some quick background: All 15-inch and 17-inch MacBook Pro models from 2010 and later, as well as 2008 and 2009 models outfitted with an Nvidia GeForce 9400M/9600M GT, dynamically switch between a low-power (and lower-performance) integrated Intel graphics chip and a power-hungrier (and better-performance) discrete Nvidia or AMD graphics card, based on the needs of running applications. The problem is, some applications you wouldn’t think need a lot of graphics power actually rely on features such as OS X’s Core Animation that require the discrete graphics card. So even if you’re working from battery power and trying to minimize battery usage (by turning down screen brightness, for example), you may still be using discrete-graphics-card cycles—and, thus, more energy.
The only way to make sure you’re using the integrated GPU is to quit applications that rely on the discrete GPU, since OS X doesn’t let you choose to stick to the latter. The Energy Saver pane of System Preferences lets you disable the Automatic Graphics Switching option, but doing so actually forces the computer to use the discrete GPU, an option that drains the battery even faster.
The solution is gfxCardStatus, which runs as a systemwide menu. The menu’s icon reveals, at a glance, which GPU is in use: i for integrated or d for discrete. You can also configure gfxCardStatus to display a Growl notification whenever the GPU changes.
By watching for these changes, you can get a better idea of which tasks cause your MacBook Pro to use the power-hungry GPU. But the most valuable part of gfxCardStatus to me is that its menu lists which specific running apps are dependencies, or using discrete graphics, so I can quit them when I need to eke out more time from the battery’s charge.
If you’re especially worried about battery life, gfxCardStatus lets you force the issue by choosing Discrete Only or Integrated Only from the utility’s menu. The former is simply a shortcut for disabling the aforementioned Automatic Graphics Switching setting; the latter actually forces apps to use limited resources, as if the apps were running on a Mac, such as the 13-inch MacBook Pro, with only an integrated GPU.
Before using the Integrated Only option, though, make sure you quit all applications listed under Dependencies, as some programs don’t take kindly to having the expected GPU pulled out from under them. In my testing, BusyCal 1.6, for example, wouldn’t advance the month correctly, and Twitterrific froze my machine. Restarting BusyCal fixed the problem, and it turns out the program offers an optional setting to not use Core Animation. I had to reboot my Mac following the Twitterrific stall, but otherwise nothing else was harmed.
(It would be nice if gfxCardStatus popped up an optional alert warning that using only the integrated GPU can cause problems, so folks not paying attention—or writers deliberately playing with fire in the name of science—don’t get burned.)
If you’re regularly off the power cord, you can also have gfxCardStatus automatically choose integrated, discrete, or dynamic GPU modes based on whether your MacBook Pro is running from battery or AC power. However, I admit to being leery of this feature, since, for example, a dependent application could be using discrete graphics when your MacBook Pro goes to sleep, but be limited to integrated graphics when the computer wakes up. I prefer to see which applications I should temporarily quit (or for which I should find alternatives that support dynamic switching).
The battery gains from using only integrated graphics depend on which applications you use, but I estimate I get about 20 percent longer battery life on my MacBook Pro by closing dependent apps when working off battery power. And it’s sort of fun to watch OS X’s menubar battery indicator increase its charge and time estimates when my MacBook Pro settles into integrated graphics.