@icedquinn Not sure I agree. The whole point of the GC not being explicit is to reduce human error, and it does a good job at that. Java performance compared to many other interpreted languages is exceptional (not so much .net).
You also do have the ability to "suggest" the invocation of garbage collection should you need to add some explicit control to speed things up. but it rarely makes much of a difference.
@icedquinn If you use C and traditional malloc and free calls to allocate memory as needed on a per object basis, it is actually **significantly** slower than Java's GC and memory allocation, for example.
If you use a library to pre-slate your memory and do a few really special stuff (thus removing you from access to malloc directly) you will get speeds comparable to Java at best.
You would have a really hard time beating Java's GC manually.