Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Windows Microsoft Operating Systems Upgrades Technology

Windows 8 To Reduce Memory Footprint 306

bheer writes "Microsoft's Windows 8 blog has a good post about the work being done to reduce Windows 8's memory footprint. The OS will use multiple approaches to do this, including combining RAM pages, re-architecting old bits of code and adding new APIs for more granular memory management. Interestingly, it will also let services start on a trigger and stop when needed instead of running all the time."
This discussion has been archived. No new comments can be posted.

Windows 8 To Reduce Memory Footprint

Comments Filter:
  • Re:Services (Score:5, Informative)

    by Daltorak ( 122403 ) on Saturday October 08, 2011 @10:06AM (#37647578)

    > it will also let services start on a trigger and stop when needed instead of running all the time.

    Nice.

    Although I have to wonder, why are "services" treated differently than other programs, in this context or any other? Does it have any positive effect?

    First of all, it's worth noting that Service trigger events shipped with Windows 7 [microsoft.com].... they're just making better use of this capability in Windows 8. (This is a common flaw with Microsoft's development process for Windows.... they include some really smart new APIs but then take another 5 years to start really using them thoroughly in Windows itself.)

    But to your main question -- why are services different from other programs? A service is actually a regular program, with one exception -- it hooks into the operating system to receive events telling it to pause, continue or stop its operation.

    Why do this? Management. You don't want 20 different programs with 20 different ways of starting & stopping them.

    A feature the Windows Service Control Manager offers is the ability to run your service in a single pooled process alongside other services that require roughly the same privileges on the system. You can see this at work in the Windows 7 task manager -- go to the Services tab and sort the list by PID. If you ever wondered what "svchost.exe" is on a Windows system, or why there are several running on your system, each under different user accounts...... there you go.

  • Re:Hope so... (Score:5, Informative)

    by tgd ( 2822 ) on Saturday October 08, 2011 @10:19AM (#37647620)

    The vast majority of people -- even those who think they know how to interpret windows memory statistics -- don't know how to interpret Windows memory statistics. The common tools (like Task Manager) give meaningless numbers for both process and total system usage. Sysinternal's Process Explorer is better, but you still need to understand how the Windows kernel and memory management works to properly interpret the numbers.

    I wouldn't read anything at all into the numbers you were seeing. 900M memory usage for two programs in Task Manager is just fine -- you quite literally *can't* get the real information through Task Manager.

    Modern OS memory management is one of the most complicated things an OS does, and unfortunately no one has ever come up with a good way to distill all the information about what is really going on in your physical memory into a single number or statistic that lets people know if something is wrong. The only real statistic that matters is the percentage of pages that the total sum of processes are actively using relative to the commit charge... a process with a gigabyte of memory mapped files, or a hundred megabytes of shared code pages, or hundreds of megabytes of allocated and populated pages that only infrequently use them is running just fine.

    Reducing memory usage in Windows 8 is more about reducing the churn of pages through the various kernel data structures in the memory manager. As the article says, that involves things like optimizing old code to not trigger page faults all the time, or to suspend threads or otherwise idle background services that aren't being used. (A thread waking up, and going immediately back to sleep because it has nothing to do will still potentially cause a page to be re-loaded from disk.)

    The Russinovich/Ionescu book "Windows Internals" has some pretty good sections that talk about how Windows memory management really works, if you're curious about it -- it would likely be enlightening about some of the misunderstands that people have about Windows.

  • by Baloroth ( 2370816 ) on Saturday October 08, 2011 @11:43AM (#37648134)
    In 7 at least you can go to "Resource Monitor" under the task manager Performance pane, and windows has a detailed breakdown of the way it is using Ram (Hardware Reserved/ In Use / Modified / Standby (i.e. cache) / Free). The last two add to be "available". It also shows how much on-disk cache you are using. Interestingly, 8 isn't using all my memory for pre-fetching any more (it was when i upgraded from 2GB to 6GB).

Software production is assumed to be a line function, but it is run like a staff function. -- Paul Licker

Working...