Microsoft aims to reduce heavy data usage for Windows users with the new Windows 8 operating system and the Microsoft Corporation has altered the memory system in Windows 8. In the latest Building Windows 8 blog, Bill Karagounis, group program manager for Microsoft’s Performance team, detailed some of the tricks that the company has employed in the new OS to optimize the use of memory and Windows applications can reserve multiple chunks of system memory, not just what for they need now but what for they may need in the future. Yet another trick was to find various core but low-level components that have been in Windows for almost 20 years and the new memory optimization should coax better performance out of PCs with an ample supply of RAM but also benefit those with only 1 or 2 gigabytes of memory………………..
The runtime memory usage of Windows 8 is an important factor in determining the Windows 8 system requirements, as well as the broadened spectrum of devices that will host Windows 8 and Microsoft delivering the complete Windows 8 experience on SoC-based devices characterized by low power consumption. This makes it even more important to leave lots of memory available for multiple concurrent apps and to sustain the overall responsiveness of devices. Something that might not be obvious is that minimizing memory usage on low-power platforms can prolong battery life and in any PC, RAM is constantly consuming power. If an OS uses a lot of memory, it can force device manufacturers to include more physical RAM. The more RAM you have on board, the more power it uses, the less battery life you get. Having additional RAM on a tablet device can, in some instances, shave days off the amount of time the tablet can sit on your coffee table looking off but staying fresh and up to date. Windows 8 goal from the beginning was to ship with the same system requirements as Windows 7 and it is fun to think about what the low end hardware looked like in 2009 and how you can’t even find things like 256MB memory modules anymore. Windows 7-era hardware would have the option to easily upgrade their existing machines to Windows 8 and take advantage of the functionality it has to offer. Microsoft expect that many machines that predate the Windows 7 release will run Windows 8 based on the experiences with older machine in performance test infrastructure. An important task for Windows 8 was to make room for new functionality while looking for opportunities to reduce the memory consumed by existing functionality and consumed across the board. Windows 8 is tracking well towards meeting the goal.
The easiest way to make a ballpark comparison of Windows 8 vs. Windows 7 memory use is to install both operating systems on a 1GB RAM machine (minimum OS RAM requirement) and compare them when they’ve been rebooted multiple times and then idled for a while. The specific hardware making up a machine, memory use of drivers, and even uptime can cause variability, so memory results will be different on different machines. For a bit of extra fun on a test machine, go to device manager and disable your display adapter (unload the graphics driver). You’d never run your machine this way but this does give you an even closer approximation of the memory use of Windows itself. With a disabled graphics driver, the machine above gets under 200MB after idling for a while. Windows 8, a clean install also contains the extended Windows Defender technology, which, for the first time incorporates complete antimalware functionality. When assessing the contents of RAM in a typical running PC, many parts of memory have the same content and the edundant copies of data across system RAM present an opportunity to reduce the memory footprint even for services and OS components. Applications will sometimes allocate memory for future use and will initialize it all to the same value. The application may never actually use the memory as it may be there in anticipation of functionality that is the user never invokes. If multiple running applications are doing this at the same time, redundant copies of memory are in the system.
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. 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. OS services configured to run all the time are a significant source of ambient memory use. When assessing the set of OS services during Windows 8 planning, Microsoft decided to remove a number of them (13), move a different set of services to manual start, and also made some of the always running services move to a start on demand model. This is where a trigger in the OS (like device arrival or the availability of a network address) causes the following to occur:
- The service starts.
- The service does its thing (whatever that happens to be).
- It hangs around for a while to make sure there isn’t anything else to do, and
- The service goes away.
You’ll notice that Plug and Play, Windows Update and the the user mode driver framework service are all trigger-started in Windows 8, in contrast to Windows 7, where these services were always running. ome of this new functionality is packaged in the form of new services. As Windows executes applications and performs its own system housekeeping, program files and data are loaded off the disk into main memory. Shortly after shipped Windows 7, microsoft applied a similar technique to several of the low level components of Windows dating back to the early days of NT (early 1990s). The work included re-architecture of code and changing data structures to completely separate “hot” parts of memory (frequently referenced) from cold parts. By densely consolidating the hot items, we brought down the overall runtime memory cost. Given the nature of the changes (low-level OS), they wanted to get the work done as early as possible in the schedule to get ample runtime on the changes. To date, these changes have been in place on Windows 8 for almost 2 years with thousands of Microsoft employees using the product to get their daily jobs done. Back in June, you saw Steven and Julie introduce the Metro style UI for the first time. Microsoft expect many people using tablets to spend a lot of time in that environment, typically using Metro style apps. Windows 8 will only initialize OS components unique to the desktop environment when necessary and this is another source of memory savings, approximately 23MB right now. 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.
Figure 1 – Memory usage in Windows 7 SP1:
Figure 2 – Memory usage in Windows 8: