Well, if its like .NET, an object is destroyed on a periodic schedule.
Many objects may go out of scope, and they are marked as unused, and a garbage collector will periodically come through and free all the memory.
This keeps down the overhead of garbage collection. For instance if you were making recursive calls, when the recursion unwound, you don't want a garbage collector being called potentionall hundreds or thousands of times in a row to free memory. It can be marked unused and removed later. (When the CPU isn't very busy)
__________________ Desktop machine: 2 x Opteron 246, Asus K8N-DL, 2GB PC3200 ECC Reg., XFX GeForce 6600GT, 74gb WD Raptor, 2 x 19\" LCDs, Windows XP x64
Server machine: Intel P4 3.0GHz 2MB EM64T, ECS i865pe, 1GB PC3200, 36gb WD Raptor, Windows Server 2003
Laptop: Dell Inspiron 9100 (Intel P4 3.2GHz 1MB Prescott, i865pe, 512MB PC3200, Mobility Radeon 9700, DVD+R/DL Burner), Windows XP
Linux: P3 450Mhz, 386MB ram, Slackware 10.1 (Running mySQL/Apache) |