Cutting down the overall runtime memory requirements of the core system was one of the key engineering tenets of building Windows 8, according to Steven Sinofsky, President, Windows and Windows Live Division.As such, not only is Windows 8 tailored to the same system requirements as Windows 7, but it’s also sporting a consistent collection of memory usage optimizations set up to boost responsiveness on a range of devices, including those equipped with SoC architectures, get concurrent applications running smoothly, and even prolong battery life by minimizing energy consumption.
“We made hundreds of specific changes to minimize OS memory use in Windows 8,” revealed Bill Karagounis, the group program manager of the Performance team.
I had planned to write an entirely different piece today, but after seeing the latest B8 blog post, I had to do an uncomplicated test focused on running Windows 8 in a RAM-deprived scenario.
The goal of the test was fairly simple, get Windows 8 to boot and run sufficiently to take a screenshot of Task Manager revealing an amount of random access memory in use inferior to the recommended amount required to run Windows XP, but even as low as the absolute minimum.
Windows 8 requires at least 1GB RAM for the 32-bit (x86) version and 2GB RAM for the 64-bit (x64) flavor - I used a x86 copy of Windows 8 Developer Preview Build 8102 Milestone 3 (M3). The software giant reveals that XP needs “at least 64 megabytes (MB) of RAM (128 MB is recommended).” But first thing’s first…
Windows 8 memory optimizations“Windows 8 has a better scheme for the prioritization of memory allocations made by applications and system components. This means that Windows can make better decisions about what memory to keep around and what memory to remove sooner,” Karagounis explained.
What the granular prioritization of memory does is that it allows Windows 8 to grab resources from running apps and re-allocate them without impacting responsiveness. This is made possible through enabling programs to allocate memory as low priority, which tells the OS that it can be used for more stringent needs, if they come about.
Another example of RAM usage optimization is related to resolving the issue of duplicate content through memory combining. Windows 8 combines redundant copies of memory for certain apps, freeing up RAM.
“Memory combining is a technique in which Windows efficiently assesses the content of system RAM during normal activity and locates duplicate content across all system memory. Windows will then free up duplicates and keep a single copy,” Karagounis said.
“If the application tries to write to the memory in future, Windows will give it a private copy. All of this happens under the covers in the memory manager, with no impact on applications. This approach can liberate 10s to 100s of MBs of memory (depending on how many applications are running concurrently).”
Another way that Windows 8 reduces memory usage is by consolidating frequently accessed portions of RAM. As much as tens of MB can be freed up on an average computer just because the next major iteration of Windows does a better job at re-consolidating memory that’s referenced less frequently, providing additional RAM resources to other programs that might need them.
Optimizations were also made at service-level, the Redmond company explained. 13 services in Windows 8 that were running all the time were removed, and additional services transitioned to manual start, while others will only start on demand.
The fact that the desktop only loads if users actually need to use it or one of the non-Metro programs also helps free memory.
“From a memory perspective, we’ve taken advantage of the fact that there will be some set of devices on which users will stay in the immersive, Metro style UI almost all the time. In this instance, Windows 8 will only initialize OS components unique to the desktop environment when necessary. This is another source of memory savings, approximately 23MB right now,” Karagounis added.
Windows 8 on 128MB RAMYes, it works. Rather well actually. The Windows 8 virtual machine booted fast, and the preliminary stages of the platform, the lock screen and sign-in also succeeded one another rapidly. Swapping the Start Screen with the desktop and vice versa represented a seamless transition, and launching Task Manager took only a few seconds.
I'd say that Windows 8 on 128MB of memory is barely usable, especially since I was even able to run Internet Explorer 10 (IE10) Platform Preview 3. PP3 ships exclusively with the Windows Developer Preview. However, I wasn't able to run Metro apps, at all, try as I might.
You have to be kidding me!And then I thought to myself, "just what if?" and had to try getting the amount of memory reduced even further. So I did just that. With the Windows 8 virtual machine powered down, I halved the RAM down from 128MB and then launched the OS.
Much to my surprise, it managed to get to the lock screen in record time. Windows 8 boots amazingly fast even on an abysmal 64MB of memory. So far so good, especially considering that I wasn't even expecting the operating system to start at all.
I slid the lock screen out of the way and entered my password. The next stage took a bit of patience on my behalf. But since Windows 8 did not appear to crash or to stop responding, I stuck by it.
Approximately 10 minutes later I got to the Start Screen full of beautiful tiles for Metro apps. As expected, Windows 8 was not exactly usable at just 64MB RAM. But then again, you can't take out half the engine of a car, put bike pedals in, and expect it to run under normal parameters.
The fact that it was running was nothing short of a memory optimization miracle. And I knew I was stretching it pretty thin, but I just had to launch the desktop. I figured you guys needed some sort of proof that Windows 8 was indeed running on 64MB RAM, and what better example than a screenshot of Task Manager?
Again, much to my surprise, the Windows 8 desktop launched quite fast. And again, this was extremely hard to believe when considering that all it has at its disposal are 64MB RAM. Launching Task Manager took some time, I won't lie. But once it was up and running, the tool was surprisingly responsive. Jumps between Task Manager tabs were performed rapidly and without any issues.
Check the screenshots accompanying this article in order to see that Windows 8 Developer Preview Build 8102 M3 is indeed running inside a virtual machine with just 64MB of memory allocated to it.
Just to make it clear, Windows 8 on 64MB RAM is not even close to barely usable, but the fact that it does run is enough to make such an experiment worthwhile. Still...
Windows 8 is RAMorexic. The level of memory usage optimization is amazing, just as is the minimum amount of RAM that Windows 8 is capable of running on.
Windows 8 Developer Preview Build 8102 Milestone 3 (M3) is available for download here.