We all know that
Windows 8 is under development and a
Developer Preview build is
available free to download for public.
We have shared a detailed review of Windows 8 Developer Preview build which can be read
here. Microsoft has also talked a lot about Windows 8 new features and enhancements at Windows 8 blog.
Today Microsoft has shared some interesting details about Windows 8 memory management system at official
Building Windows 8 blog.
According to Microsoft, their goal with Windows 8 from the beginning
was to ship with the same system requirements as Windows 7. 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 7 vs. Windows 8 Memory Consumption:
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 below graphics compare memory consumption on an old netbook
running Windows 7 at idle, and then with the same machine running
Windows 8.
As you can see though, Windows 8 is doing well relative to Windows 7.
NOTE: For Windows 8, a clean install also contains the extended
Windows Defender technology, which, for the first time incorporates
complete antimalware functionality
– also optimized for memory and resource use. (This functionality does
not exist on a clean install of Windows 7 where we would recommend that
you add security software).
Memory Combining:
When assessing the contents of RAM in a typical running PC, many
parts of memory have the same content. The redundant copies of data
across system RAM present an opportunity to reduce the memory footprint
even for services and OS components.
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.
This approach can liberate 10s to 100s of MBs of memory (depending on
how many applications are running concurrently).
Service changes and reductions:
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.
More granular prioritization of memory:
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.
For example, antivirus programs (AV) do various checks on files when
they are being opened by other programs. The memory that the AV program
allocates to check virus signatures is usually a one-time allocation (it
is unlikely that specific memory will be needed again). On Windows 7,
the memory is treated as if it had the same priority in the system as
other memory (say, memory allocated by a running instance of Microsoft
Excel). If memory became scarce, Windows 7 could end up removing the
memory that helps another running application (like Excel) stay
responsive for the user, which wouldn’t be the best choice for system
responsiveness in this case.
In Windows 8, any program has the ability to allocate memory as “low
priority.” This is an important signal to Windows that if there is
memory pressure, Windows can remove this low priority memory to make
space, and it doesn’t affect other memory required to sustain the
responsiveness of the system.
Now that's an impressive thing to know about Windows 8. It seems
we'll not need to change services type to manual to speed up Windows 8
like previous Windows versions or will we need?