Windows 8 will have a smaller memory footprint than previous versions, providing better performance to systems and devices using small amounts of RAM. Since the OS will be fully compatible with ARM SoC products, having plenty of available memory on hand for multitasking is a must.
A new post on the Building Windows 8 blog outlines the memory usage goals of Microsoft’s next-gen operating system and some of the steps the company has taken to achieve them.
One method of reducing memory usage is by combining. On a typical PC, many sections of memory contain identical pieces of data. This happens because programs will often allocate memory for future use and initialize it all to the same value. Often times these programs end up not using the additional memory they have set aside. If multiple applications do this, there’s an excess of memory being utilized to store identical data.
Memory combining allows Windows to assess the contents of the system RAM and free up duplicate copies of data, consolidating it into a single copy. If an application needs that memory in the future, Windows will make a “private copy” just for that app. All of this happens behind the scenes and is said to free up 10s to 100s of MBs of memory.
Another area that Microsoft developers are working on are services in Windows. The team has removed 13 services, moved several more to a “manual” start state and changed others that were labeled as “always running” to “start on demand” mode.
Start on demand is classified by something triggering the service, such as a new device arrival or the availability of a network address. When this happens, the service will start and do its job. It then lingers around for a bit to see if anything else needs to be done. If not, the service ends, freeing up memory once again. Things like Plug and Play and Windows Update are now all trigger-activated tasks in Windows 8.
For tablet users that will likely stay in the Metro UI the majority of the time, memory costs from loading the desktop environment can also be saved, which is approximately 23MB.