Microsoft Engineers Windows 8 Metro for Power Efficiency

It's quite obvious that Microsoft's big focus for Windows 8 is to make it a more suitable operating system for the rapidly growing tablet and touch segment. Through Metro style apps, Microsoft will be imposing a strict set of rules to ensure that Windows 8 on portable devices will be as battery-friendly as possible.

Windows 8's Metro apps take a big page out of how modern mobile operating systems handle background tasks. In a recent B8 blog post, Microsoft explained that Metro style apps can be in one of three possible states:

  1. Actively running in the foreground
  2. Suspended in the background
  3. Performing some defined background activity    

Active foreground apps utilize CPU, disk, memory, and other resources as needed. This isn't much different from how desktop applications work. The real shift from how things are done on desktop operating systems comes when an app is no longer in the foreground but still has functionality in the background.

Windows 8's Metro apps will suspend in the background, not unlike how Apple decided to implement multitasking in iOS. As soon as a user switches away from an app, the operating system completely suspends all actions, but still holds its state in memory for instant resume when it's switched back.

"This means that the Windows scheduler (the component that schedules CPU access for processes and threads) does not include it in the CPU scheduling," Microsoft's lead program managers wrote in the blog. "Since the operating system is not scheduling the app, the app is not using the CPU, and it is possible for the CPU to drop into lower power states. Getting the CPU into low power states can be critical to achieving better battery life.

"The benefit of being able to suspend apps is that you get really fast switching between them without negatively impacting the battery life or performance of your system. This is altogether different than traditional desktop apps, where we are all used to optimizing our workflow for those apps that take a long time to launch."

Since memory is an unfortunately finite resource, there will be times when suspended apps will have their saved memory states wiped off the slate. Microsoft says that this should be a rare occurrence since memory can also be overflowed into local storage.

"The system may remove an app from the suspended state and terminate the app if the system starts to run low on memory. Memory is a finite resource and we want the apps you are using most frequently to be ready for you instantly," notes the blog. "If you have not used an app in a while and the operating system needs more memory, it terminates one of your suspended apps. This should happen relatively infrequently because the memory manager will take your suspended apps and save them to disk (which generally has more capacity than physical memory). When you switch back to these apps, they will be ready instantly."

Of course, there are cases where a complete suspension of all app functionality would be undesirable, such as if it were in the middle of a file copy function or if it were streaming music. For these cases, Microsoft has defined certain functions that may remain active in the background in WinRT:

  • Playing music
  • Downloading a file from or uploading it to a website
  • Keeping live tiles alive with fresh content
  • Printing
  • Receiving a VoIP call
  • Receiving an instant message
  • Receiving an email
  • Sharing content (like uploading photos to Facebook)
  • Synchronizing content with a tethered device (like syncing photos)

Finally, there's one more new state of Windows 8 in the interest of connectivity and battery life: connected standby. In this mode, desktop apps will be in a sleep state while Metro style apps can use a minimal set of resources to stay updated.

"This enables some great connected scenarios, such as always having email up-to-date, and being able to receive instant messages or phone calls, while still delivering amazing battery life," Microsoft explained.

Stay tuned for more on Windows 8.

Read more from @MarcusYam on Twitter.

Marcus Yam
Marcus Yam served as Tom's Hardware News Director during 2008-2014. He entered tech media in the late 90s and fondly remembers the days when an overclocked Celeron 300A and Voodoo2 SLI comprised a gaming rig with the ultimate street cred.
  • phamhlam
    Windows 8 + Intel Ivy Bridge is going to be a great combo. I hope it will increase battery by a nice margin.
  • theuniquegamer
    That'll be a good feature for laptops , ultrabooks and tablets giving a better standby time i.e 8-10hrs or more .
  • CaedenV
    The coolest part of connected standby (unless they have changed it from the build conference) is that the device is in a sleep state, and all updates are done at once. For example, instead of a bunch of different programs constantly turning the device on and off to do updates, Win8 will take that process over and turn on, update everything, and then turn off again, thus keeping the device in a sleep state for longer periods of time and extending battery life.
    The metro apps are one area where I am not a huge fan of win8 (I love the rest of it). It is MY personal computer/device, and if I open a program I want it to remain open. If I need to close a program then I want to choose what program to close. It is fine and well to keep everything open 24/7 on a PC with 8+GB of ram, and a completely other issue to run things on a 1-2GB netbook. I understand that future netbooks will have 4-8GB of ram, but win8 is small enough to run on older netbooks just fine, so let me micromanage my memory usage if I want to on such devices!
  • amk-aka-Phantom
    FFS... I WILL NOT BE RUNNING """apps""" on my desktop/laptop, get a smartphone/tablet for that, I'm very happy with the way my current desktop GUI looks like and don't need to "re-define" it, and I know that I'm not alone by far.
  • freggo
    Interesting feature; but the user should have a say if the App goes to suspend mode or continues to work in the background no matter what type App it is.
  • feenyxfire
    What could you possibly have minimized other than streaming/updating that you wouldn't want suspended? That makes no sense. I for one wish Apple media threads (quicktime, itunes, etc.) would be suspended automatically when I wasn't using them: talk about memory and CPU hogs.
    To all the people that continue to complain about the Metro UI. It's an overlay: they're not taking away your crowded, cluttered desktop. For the times when you just want to check mail, the weather, or switch on some music, you won't have to drop down to the desktop. It's convenient, customizable, and simple: stop making it sound like the world is ending.
    As far as 'apps' go: saying you 'don't use apps' is absurd. Windows mail is an app. Spotify is an app. MS Word is an app. In the case of a desktop/netbook, the apps will be in the form of full-sized stand-alone programs. They don't have to be Angry Birds and Farmville. The whole point of an 'app' format is to try to eliminate bulk from over-featured programs. Spotify is really a web browser in a way, optimized and streamlined to just do music. So is a mail client, or an RSS/Twitter feed client.
  • mcd023
    I'm really itching for an x86 Win8 tablet (and yes, the series 7 slate looks good, too)
  • jaber2
    I on the other hand would love to see W 8 working on my desktop
  • lockhrt999
    It's power efficient as long as you don't keep it in idle. Few seconds in idle, the CPU usage shoots to 50% on my quad core comp making it to run at highest clock possible. After killing couple of svchost processes only then cpu usage lowers.
    I've been using win8 for few months now and I can only say that idling is as heavy on electricity as playing crysis(minus the GPU usage).
  • DEY123
    9348758 said:
    It's power efficient as long as you don't keep it in idle. Few seconds in idle, the CPU usage shoots to 50% on my quad core comp making it to run at highest clock possible. After killing couple of svchost processes only then cpu usage lowers.
    I've been using win8 for few months now and I can only say that idling is as heavy on electricity as playing crysis(minus the GPU usage).

    You need to see what process svchost is actually running in process manager (might have the name wrong but you can look it up on the web. I used to occasionally have one of these run away CPU hogs and I later found it was some HP software from a printer I used to have that would run wild like this. I then set it to not turn this process on and the problem was gone. you probably have a program that for whatever reason is not behaving well (and you probably don't need i).