Should java developers know about garbage collection algorithms? [closed]
Closed 9 years ago.
What degree of low-level programming can be achieved with Languages like Go?
Go and D provide garbage collection, and yet they claim to be system programming languages. What degree of low-level programming can be achieved with languages having garbage collection?
How does a garbage collector prevent the whole memory from being scanned on every collect?
Some (at least Mono’s and .NET’s) garbage collectors have a short term memory area which they scan often, and a secondary memory area which they scan less often. Mono calls this a nursery.
Which part of the Memory is used for the Garbage Collector?
I understand the Heap memory divisions such as Young, tenured and Perm Gen.
But I’m just curious from where is the memory used for performing the Garbage Collector itself? Is it from any of these memory spaces or in the thread stacks ?
Is it appropriate to try to control the order of finalization?
I’m writing a class which is roughly analogous to a CancellationToken, except it has a third state for “never going to be cancelled”. At the moment I’m trying to decide what to do if the ‘source’ of the token is garbage collected without ever being set.
Memory management for fast message passing between threads in C++
Suppose there are two threads, which communicate by asynchronously sending data messages to each other. Each thread has some kind of message queue.
When to use weak references in .Net?
I have not personally come across a situation where I’ve needed to use WeakReference type in .Net, but the popular belief seems to be that it should be used in caches. Dr Jon Harrop gave a very good case against the use of WeakReferences in caches in his answer to this question.
How does a concurrent garbage collector deal with variables?
Let’s say it is a concurrent mark-and-sweep garbage collector.
When a garbage collector compacts objects in the heap, does it change the references on the stack?
This seems like a simple question, but after a lot of reading on the subject, I still haven’t found a definitive answer (perhaps because it is so simple).
Is Non-Deterministic Resource-Management a Leaky Abstraction?
From what I can see, there are two pervasive forms of resource-management: deterministic destruction and explicit. Examples of the former would be C++ destructors and smart pointers or Perl’s DESTROY sub, whilst an example of the latter would be Ruby’s blocks-to-manage-resources paradigm or .NET’s IDispose interface.