powerhippo wrote:I call up one friend of mine told me about this "memory leak" in WinXP SP1
so that I should to download Hot Fix for it! ...
sorry, you misunderstand it... a 'memory leak' isn't a specific event
when an application is running, it's program routines request memory from the operating system. When a routine is finished, it informs the OS that the formerly requested memory block isn't needed anymore. Which marks the block as free and re-usable.
since a computer program isn't a perfect world, this 'communication' sometimes fails - it may be interrupted, forgotten about, etc.
The result will be an orphaned block of memory, marked as 'in use'. It doesn't even need to be a huge block - just a few bytes is sufficient to make it a 'leak' through which memory vanishes...
for simplicity let's assume a 4MB memory space and a few forgotten blocks of 1k at location 1,2,3 MB. Almost the full 4MB is in available in single(!) bytes (just 3kB are marked as used)
The next request is 2 MB and it will fail because the size doesn't fit anywhere in between the 3 forgotten blocks.
there are literally thousands of circumstances und which this 'forgottem memory' situation can happen - it's a major part of any developement to carefully check a program regarding these conditions.
for obvious reasons a very complex and extremely long program is more likely to suffer from this.
the original Mac OS (not OSX!) had extremely powerful memory handling facilities, as memory was short and expensive those days - there even were provisions that were kind of 'self healing' in this context.
Today a Gigabyte isn't a big deal which makes the effect less obvious in some circumstances, like office applications.
The M$ code, in particular in the graphic domain is (said to be) full of such stuff
cheers, Tom