Put memory 'garbage' collection to good use

Daily Newsletters

Sign up to ZDNet UK's daily newsletter.

A cousin to mark and sweep is stop and copy collection. Stop and copy solves the defragmentation problems of mark and sweep at the expense of higher memory requirements (or a smaller object pool that induces more frequent collections). This algorithm is present in the Microsoft Java VM, which at introduction was one of the fastest VMs around. Stop and copy works by creating two memory pools for objects but only uses one of those pools. As you allocate objects, it simply gives you the next available space in its active memory pool. If that pool fills up -- or if the system decides it is time to collect -- it performs the same traversal phase as mark and sweep, following all pointers from a system object through your program. But instead of just marking the objects, it copies them from the current memory pool to the inactive one. The copy ends up nestling the live objects one after the other in the new pool. Once complete, it switches active memory pools. Since it only copies active objects, garbage objects are simply left behind. They aren't so much collected as abandoned. The copying inherently defragments the new pool since one object is placed right after the other. Stop and copy still must stop the running program to collect objects and move them into the memory pool. While it's running, the application that it's cleaning up after is not running, and this manifests as choppy behavior for some applications. Generational
Profiles of active garbage collection revealed some fundamental flaws in how GC algorithms worked versus how garbage needed to be collected. Most objects in a running application only live for a short while and a select few live the entire life of the application. The algorithms outlined above treat all objects equally. Unfortunately, every active object requires some work upon it (e.g., shuffling, marking), which negatively affects performance. Objects that live a long time are continuously -- and needlessly -- shuffled around as they survive collection to collection. Contemporary garbage collectors like the one in the latest Java Hotspot VM create separate pools for younger and older objects called generations. If an object survives a specific number of collections (sometimes just one, but it depends on the collector), it is moved from a younger pool to an older pool. The older pool is, by nature, collected less often in hopes that, since these objects have lived awhile, they're likely to live awhile longer. The effect is a greatly reduced load upon the garbage collector. Short-lived objects that die inside a collection cycle have less impact on the collector since collectors mostly deal only with live objects. Older generations are collected far less often, reducing the needless shuffling of old objects. Different generations can even have different algorithms used within them. For example, a stop and copy is suitable for the young object pool since it is assumed most young objects die quickly (stop and copy has a linear performance cost in respect to the number of nongarbage objects). Older generations can take extra steps towards exacting algorithms since performance is less of an issue. Put garbage collection to good use
For all its merits, garbage collection still takes CPU cycles away from a running program. The best way to minimise that impact is to simply create fewer objects. Fewer objects provide fewer collections, which theoretically improves performance. garbage collection is a solid step toward taking away some nasty details from everyday programming. It was a hot topic of research in years past and most of the technology used today is quite old (in computing terms anyway). It is about time you put garbage collection to good use.
Have your say instantly in the Tech Update forum. Find out what's where in the new Tech Update with our Guided Tour. Let the editors know what you think in the Mailroom.

Post your comment

In order to post a comment you need to be registered and logged in.

You can also log in with Facebook. Log in or create your ZDNet UK account below

  • Login

Will not be displayed with your comment

By signing up for this service, you indicate that you agree to our Terms and Conditions and have read and understood our Privacy Policy. Questions about membership? Find the answers in the Community FAQ

Get ZDNet UK's daily newsletter

Enter your email address to sign up

ZDNet UK Live

bordero

ike fuelband is great for every healthminded person ! to work out! theres this website called textme4free.com that you can use to text anywhere in...

7 hours ago by bordero on Nike's FuelBand wristband gamifies exercise
BrownieBoy

> I'm told it's somewhat annoying when people have their Macs stolen > and Apple stores treat the thief as the owner, but there you go. Ouch,...

9 hours ago by BrownieBoy on AMD Ultrathins to challenge Intel Ultrabooks
Moley

@kevinmchapman. OK, I acknowledge that 'most' was a gratuitous throwaway comment as an afterthought and too presumptuous. As to proof, as you...

14 hours ago by Moley on A tale of two distros: Ubuntu and Linux Mint
Jack Schofield

@BrownieBoy > Works really well for thieves.... >> Nice attempt to deflect the argument by tossing in a point that's totally >> irrelevant, even...

15 hours ago by Jack Schofield on AMD Ultrathins to challenge Intel Ultrabooks
raskolnikof

fantastic that the so called piracy bills have been withdrawn. however, these anti-democracy supporters are still in the shadows so lets be alert...

15 hours ago by raskolnikof on SOPA, Protect IP support wavers in face of online protest
Tony Douglas

Please God no; teach them anything you like - thinking rationally, the uses and misuses of data, what data is and what it's not - but leave the...

18 hours ago by Tony Douglas via Facebook on Kids are the future. Teach ’em to code.
BrownieBoy

@Jack, > Works really well for thieves.... Nice attempt to deflect the argument by tossing in a point that's totally irrelevant, even it were...

1 day ago by BrownieBoy on AMD Ultrathins to challenge Intel Ultrabooks
bootlegger

Make that 13 people now - I got refused today at Manchester airport. I thought I was up to date on this legislation - I knew of the EU ruling from...

1 day ago by bootlegger on UK airport body scans will not be opt out
tinycg

Don't forget to check out apps like GoodReader or SlideShark either, they're indispensible for people on the go in presentation situations. Best...

2 days ago by tinycg on Four top iPad apps for people on the move
TerryRK

Well it seems there is something a number of us agree on. Why is the Ubuntu Unity launcher so ugly? I thought perhaps it was something to do with...

2 days ago by TerryRK on A tale of two distros: Ubuntu and Linux Mint
Freebies202

Duplicate comments are not made intentionally. Its very good to know that now you are keeping check on this problem because sometimes a commenter...

2 days ago by Freebies202 on Microsoft fixes blog comments, speeds up blogs with open source
kevinmchapman

"the very significant number of users" and "many (most) of us" - you have no evidence for these statements. It is a fact that most users are saying...

2 days ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
Marg Menzies Harrison

Another grammar faux pas is the improper use of "you". When sitting down down in a restaurant, for example, I get cringe when the waitress...

3 days ago by Marg Menzies Harrison via Facebook on 10 flagrant grammar mistakes that make you look stupid
zdnetukuser

And NOW, folks, for Canonical's next trick... Kubuntu is late. Here's a pencil. Draw your own conclusions. cf.:...

3 days ago by zdnetukuser on Linux Minterface
Moley

@kevinmchapman. The discussion here reflects the very significant number of users who really do like the traditional menu system and who wish to...

3 days ago by Moley on A tale of two distros: Ubuntu and Linux Mint
kevinmchapman

Er, no... It is an efficient means of finding the application/file/setting you need in one place. The icons are a simply a fallback for when you...

3 days ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
TerryRK

Isn't the provision of a text based search an admission by the developers that the mass of icons approach does not work? I don't need to use a...

3 days ago by TerryRK on A tale of two distros: Ubuntu and Linux Mint
kevinmchapman

"Unity and GNOME 3 both abandon the old text-based cascading menus in favour of a graphical icon-driven system." Point truly missed. Both use a...

3 days ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
TerryRK

whs001 - Thank you, I'm glad you liked the article. I absolutely agree with you on your first point. I should perhaps have made it clearer that...

3 days ago by TerryRK on A tale of two distros: Ubuntu and Linux Mint
Dennis Nilsson

If we allow corporate interest to dictate the way our government circumvents due process against foreign entities then we should accept the same...

3 days ago by Dennis Nilsson via Facebook on ACTA stumbles in Germany

Latest in Application Development