Eric Grange writes:
Quote
Dunno, but
the fact is that today's .Net apps just aren't exactly demonstrating
superior memory leak resilience outside of the theory rooms.
In the .NET "theorem", an empty memory cell is a wasted memory cell.
Applications may gobble up memory that may r may not be released by
the garbage collector until the system *needs* that memory.
Because of this, the start of a new application or module can be much
slower than before because memory has to be freed first. When it's
running, however, all should be OK. But the system as a whole feels
slower IMHO.
The same theorem applies to "Windows Mobile".
I have a smartphone/PDA with this operating system, and applications
remain in memory even when you close them. This makes subsequent
starts faster, but occasionally a new program (such as the "camera"
app) refuses to work because of lack of memory and I have to use the
task manager to kill every running task. As a whole, I dislike this way
of doing things. I find myself killing tasks several times daily.
Under Win32, there's always the occasional ill-behaved application that
consumes memory before releasing it. But closing that application
always instantly fixes the problem. Even if you don't close it, the
operating
system will swap out the least recently used memory pages to make
memory available if you need it.
Under .NET, you can rely on it that memory will always be short and the
CPU load will show bursts of activity when the garbage collector kicks in
(this will also reduce the running time of battery-operated notebooks
BTW). I think it is a step backwards.
--
Arthur Hoornweg
(In order to reply per e-mail, please just remove the ".net"
from my e-mail address. Leave the rest of the address intact
including the "antispam" part. I had to take this measure to
counteract unsollicited mail.)