Battery life, discrete GPU's and gfxCardStatus

Discussion in 'MacBook Pro' started by seveej, Mar 20, 2012.

  1. seveej macrumors 6502a

    seveej

    Joined:
    Dec 14, 2009
    Location:
    Helsinki, Finland
    #1
    Hello folks.

    I've read a lot of the threads talking about the subject of battery life, and have been brooding over the subject for some time, and decided to share my thoughts. Before someone starts flaming me, let me say, that the battery life figures given are "real life", not "remaining-estimates". I've been collating info for three months straight now, and am quite certain, that these figures and methods apply (at least to my rig and usage).

    First, let me state, that I'm supremely happy with my rig (see sig), the battery life of this machine is tremendous, I can get 10:15 (average of 22 cycles, ranging from 7:55 to 11:20) hours straight WORK out of it, with a few tweaks:

    Disclaimer: These methods and numbers given here, are based on my personal experience, and may not be generalizable. Also battery life is 99 % dependent on usage, so if your work is not like my work, my results may not apply.

    What is my work: I'm a management student, currently working on my MBA, and wanted a machine, which I could take to school in the morning, leave the charger at home, work all day, come home and connect it to my thunderbolt display and continue working (or playing) in the evening. For me, the idea of combining a powerful workhorse (when needed) and stamina (when power not needed) was the winning ticket.

    Alas, it did not work out-of the box. Instead, I usually got around 3-3,5 hours out of the machine before the battery would die on me.
    Then I started to optimize basic behavior (shutting off unneeded connectivity (BT), regularly killing unneeded programs, dimming the screen and aggressive energy saver settings. This gave me an extra 45 minutes, but no more. Then I started to tweak the other parts.

    Tweaks:
    - locations: In stead of having to go change numerous settings every time, I created a few locations (see in the apple menu), two of them are explicitly named "power saver with WiFi" and "extreme power saver". I assume you get the point. This helped in the sense, that it made my life easier, but did not improve (battery-life-wise) on what I already had reached.
    - noFlash: I typically need to have any number of webpages open at all times, and sadly, some of them (even although they otherwise would be dead serious) host flash-based animations (typically advertisement). After some research, I came to the conclusion, that Camino is somewhat more power-efficient than the competition (Safari, Firefox, Chrome). Although it lags behind somewhat in some respects, I strongly suggest giving it a try. Further, in it's settings, theres a checkbox saying "block flash animations", which means that in stead of a flash banner, you get a grey box with a play button. And I get an added 90 minutes (on average) of battery life. Hassle-free.
    - gfxCardStatus: 3 gazillion of kudos points to Cody Krieger for gfxCardStatus. The app is (with some limitations, which I will return to) an absolute gem. Background: Apple's view of dynamic GPU switching (read: http://arstechnica.com/apple/news/2010/04/inside-apples-automatic-gpu-switching.ars) is problematic in one sense:
    In case you do not understand the problem, it lies in that the discrete GPU is switched on, not when the user or the software needs the added gfx 'oomph', but when the software uses a specific graphics library. These libraries again, are commonly used because of their convenience. There are some sites (e.g. http://forums.macrumors.com/showthread.php?t=904106 ), which list softwares triggering a discrete GPU launch, and I'm sure you can see, that many of them do in no means profit from using the discrete GPU. So in some ways, even Apple's old (from the times of the 9400M and 9600GT) manner of demanding switch GPU and logoff, while mortally flawed in many ways, allowed the user more control over his/her battery life.
    On the stage comes gfxCardStatus, which allows the user to simply select (on-the-fly) to either accept Apple's dynamic switching, "integrated only" or "discrete only" -modes. With "integrated only", you can virtually see your battery life doubled.

    Coconut battery is one of my favorite apps, because it (along with it's other uses) allows you a near-realtime view into your machine's power consumption (the last line says "battery power usage XX.X Watts"). This let's you experiment around with your different settings, so you do not actually need to trust me, see for yourself.

    Now to the downsides:
    All this naturally helps only to throttle your machine's excess power usage. It does in no way help you if you really need the processing cycles. So If you start rendering scenes, or compressing Video, there's no way in he** you'll see double digit battery life's.
    Also, as I'm sure you've seen, Apple's approach to dynamic switching:
    is in fact very heavily skewed towards graphics performance. A choice, which I find both intolerable and stupid. The choice Apple's offering it's mobile professional users is in fact "use discrete GPU only, for maximal power" and "use dynamic switching, which will almost always use your discrete GPU". No choice of "give me maximum battery life and to he** with GPU 'oomph'..." is given.

    Fact of the matter is, that everything (with one exception) your MBP can do, could be done with the integrated GPU alone (remember, this is the same GPU which Apple touts as sufficient for MBA and 13"MBP users alike).
    And the exception is the external display. In contrast with those 11" and 13" laptops (which use their external monitors over the integrated GPU), the 15" and 17" MBP's integrated GPU's have no physical connection to the thunderbolt port on the rig. In itself this is no biggie, as when you're connected to an external display, you'll surely have no problem connecting to a powersource (the TB display even includes a magsafe connector).

    Considering that I've praised gfxCardStatus to high heavens, you might wonder what my beef is. Partially I'm annoyed at Apple's "revolutionary technology" (i.e. dynamic switching), which is one of the stupidest contraptions (There are loads of discussions on "dynamic switching" -related crashes on apple's discussion forums, but I've had no trouble with those) I've ever seen. Would it have been so hard to allow for a "maximum power saving" setting, considering a young programmer was able to do it, and considering the immense utility it would bring to a lot of users?

    Partially, as I noted earlier, gfxCardStatus is not without it's limitations. What I'm saying below, might be an isolated case and I've discussed it with Cody Krieger, who was surprised at it, but it seems as if Apple in it's most recent updates (either Lion 10.7.3 or the Thunderbolt software update 1.1) has done something to hamper gfxCardStatus's functionality in some respects.
    Since the named updates, I cannot (except in very rare cases) successfully connect to my TB display without needing a reboot first. The problem might be (my somewhat uneducated guesses), that the workaround which gfxCardStatus's functionality is based on is persistent until reboot, and this functionality disables the machine's ability to connect a TB display and subsequently enter clamshell mode.

    In any case, I've logged a feature request with Apple, and will hope for a brighter future.

    RGDS,
    Pekka
     
  2. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #2
    I agree. One can only hope Apple drops this obviously flawed switching and switches to Nvidia's Optimus or AMD's Dynamic Switching.
    The reason it works so badly is because it is not truly transparent and way too buggy if they switched with any more reasonable policy. It is a fake switching because it cannot really switch while a program is running. If you force it, it works and doesn't crash but it results in nothing close the performance that you get with the Intel GPU forced while launching the program fresh.
    It is just crap.

    It also is really annoying that you cannot run an external screen of the Intel GPU. I only use it for 2D stuff like movies and browsers and the notebook so easily gets noise with the dGPU active. With Intel it stays quite unless there is a really heavy workload.

    I think the chances are good that this will change. The Intel GPU now clearly strong enough to handle everything. The power savings of a non Optimus solution also really doesn't pay off. Apple may have been to lazy to change it in time for release and they didn't want to admit a mistake and stuck with it rather than suffer bad PR. I think the chances are good that with Ivy Bridge they also release a new proper automatic switching system or they drop all dGPUs and only build Airs anymore ;) (wouldn't put it completely beyond them).
     

Share This Page