
Reducing runtime memory in Windows 8 - ghurlman
http://blogs.msdn.com/b/b8/archive/2011/10/07/reducing-runtime-memory-in-windows-8.aspx
======
emp_
Relevant: <http://www.youtube.com/watch?v=lgU9cjUtrD4> Windows 8 running on
128mb RAM.

~~~
nextparadigms
"(loading time ~2-3h)."

So, pointless demo. It probably run everything from the HDD.

~~~
blntechie
I'm not sure whether he meant the boot time here. May be the Windows 8
installation time. I could be wrong.

------
mcastner
I'm starting to believe that memory usage may be a red herring in modern
operating systems. Memory prices have been crashing, every day on Slickdeals I
see 8GB of notebook (and netbook) memory for less than $30. Is this a problem
worth solving anymore?

~~~
zokier
Memory usage is reflected in general performance, even when the whole system
fits into RAM, because RAM hasn't infinite bandwidth. Larger memory usage ->
more traffic between CPU and RAM. And cache effects make the issue even more
important. Modern systems may have gigabytes of RAM, but still only couple
megabytes of CPU cache.

~~~
magic_haze
> Larger memory usage -> more traffic between CPU and RAM.

Well, if the memory were lower, the call would have been made CPU->HDD which
is orders of magnitude slower, so you'd expect more RAM would necessarily
improve the general performance.

~~~
sliverstorm
Yes, more RAM improves performance, but using less RAM with your program also
improves performance _independantly_ of RAM volume. As an extreme example, a
program that fits in L2 will flay the (excuse my french) living sh*t out of a
2GB program loaded in RAM.

------
sliverstorm
For all the negative reputations Windows has aquired, it really seems like the
architects of 7 & 8 are taking this seriously and doing some real Computer
Science. This is some really good stuff.

------
gburt
This seems largely misguided. Stuff like merging duplicate memory spots (such
as that reserved for future use by applications) seems to question programmer
judgment in the aim of saving available memory.

If the memory is available, you'd do better to use it, no?

~~~
singh
How is this misguided?

> If the application tries to write to the memory in future, Windows will give
> it a private copy

It is textbook Copy-on-write. To me it seems no judgement is made about the
programmer.

>If the memory is available, you'd do better to use it, no?

I don't understand... if I have 2 GB of RAM, I should always use all of it?
The case being made in the article is to minimize memory consumption to
increase battery life - something that will be crucial on tablets I assume.

------
acqq
Interestingly, they don't mention their latest incarnation of "DLL hell," the
multiple versions of the same libraries which are used by different pieces of
their own system.

[http://blogs.technet.com/b/askcore/archive/2008/09/17/what-i...](http://blogs.technet.com/b/askcore/archive/2008/09/17/what-
is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-
large.aspx)

If they use a DLL version x for a component A and a version y for a component
B, they raised memory usage only for convenience of not updating one of the
components to use the latest version of the DLL.

~~~
jeffreymcmanus
That's not "DLL Hell," it's an attempt to alleviate it.

~~~
wanorris
And it's a really good one. It's easy to ensure that all the system software
or all of a particular package (e.g. Office) uses the same version of a DLL,
but approximately impossible to ensure that all third-party software is always
refreshed to use precisely the version that's loaded on a particular machine
(where that version can very based on Windows release, service pack
deployment, etc.).

This is especially a problem in enterprise deployments where there may be a
variety of spottily maintained internal and third-party applications loaded on
a machine. Having to choose between refreshing every single one of them or
throwing the unrefreshed ones out is an impractical choice. Thus DLL
versioning.

Avoid resulting problems by either maintaining your apps in a way that allows
them to all use the same build of a DLL or simply by running as few apps as
possible to minimize library loading in general, duplicate or otherwise.

