Questions tagged [garbage-collection]
24 questions
69
votes
12 answers
Why don't compilers automatically insert deallocations?
In languages like C, the programmer is expected to insert calls to free. Why doesn't the compiler do this automatically? Humans do it in a reasonable amount of time(ignoring bugs), so it is not impossible.
EDIT: For future reference, here is another…
Milton Silva
- 845
- 1
- 7
- 8
38
votes
2 answers
Are generational garbage collectors inherently cache-friendly?
A typical generational garbage collector keeps recently allocated data in a separate memory region. In typical programs, a lot of data is short-lived, so collecting young garbage (a minor GC cycle) frequently and collecting old garbage infrequently…
Gilles 'SO- stop being evil'
- 44,159
- 8
- 120
- 184
32
votes
8 answers
Why is the object destructor paradigm in garbage collected languages pervasively absent?
Looking for insight into decisions around garbage collected language design. Perhaps a language expert could enlighten me? I come from a C++ background, so this area is baffling to me.
It seems nearly all modern garbage collected languages with OOPy…
dbcb
- 423
- 4
- 7
24
votes
4 answers
How do garbage collectors avoid stack overflow?
So I was thinking about how garbage collectors work and I thought of an interesting issue. Presumably garbage collectors have to traverse all structures in the same way. They can't know weather they are traversing a linked list or a balanced tree or…
Jake
- 3,810
- 21
- 35
16
votes
6 answers
Why does garbage collection extend only to memory and not other resource types?
It seems like people got tired of manual memory management, so they invented garbage collection, and life was reasonably good. But what about every other resource types? File descriptors, sockets, or even user created data like database…
mindreader
- 263
- 1
- 5
13
votes
2 answers
Are there any garbage collectors that take into account paging?
Garbage collections have to visit all objects that are alive, so as to find the memory that can be reclaimed. (Having many generations’ just delays this a bit)
All things being equal, it is clearly better to first visit the object that are…
Ian Ringrose
- 809
- 6
- 12
9
votes
3 answers
Is reference counting GC vs. tracing GC a language property or an implementation property?
We sometimes hear "Swift doesn't do classic (tracing) GC, it uses ARC."
But I'm not sure if there is anything in the Swift semantics that requires reference counting. It seems that one could build one's own Swift compiler and runtime to use tracing…
Ray Toal
- 287
- 1
- 7
8
votes
2 answers
What would a language look like in which precise GC was implementable as a library?
Suppose you have some programming language with manual memory management. What features does this language need to have in order to be able to implement precise garbage collection as a library, and not as a fundamental language construct?
By a…
Daniel Shapero
- 262
- 1
- 11
7
votes
1 answer
Tag-free garbage collection for object oriented languages
I'm looking around for a good garbage collection technique for my language and found this paper, where Benjamin Goldberg describes a garbage collection technique for strongly typed languages, which removes the need for type information during…
MathiasVP
- 71
- 1
5
votes
1 answer
What are some possible "functional" memory structures?
With my thin knowledge on embedded systems, compilers, and computer architectures, I know that the basics of computer memory(physical) are sort of like an array, with addressing which work like pointers. I see that imperative programming(which…
Carl Dong
- 249
- 2
- 5
5
votes
1 answer
Recent Garbage collection survey paper
Many years ago I read a GC survey paper that was updated every few years with advances; I tried to find such a paper today to point a questioner on Stackoverflow at.
However all I can find is very old survey papers that don’t include current…
Ian Ringrose
- 809
- 6
- 12
4
votes
3 answers
Is it possible to implement a WeakMap with primitive keys and weak values?
Theory
Basically, I have a use-case where I would like to use primitives to store weak references to non-primitive values. If the value is no longer referenced anywhere else, then the entry should be GC'd from the WeakMap and checking the primitive…
Patrick Roberts
- 165
- 6
4
votes
1 answer
How did MacLisp's garbage collector "run in the register set"?
Olin Shivers, ‘History of T’:
Maclisp on the [PDP]-10 had used a mark&sweep GC (one version of which famously "ran in the register set," though that is another story)
This implies, in my interpretation, that the garbage collector used no storage…
Daphne Preston-Kendal
- 143
- 3
3
votes
1 answer
When was the terminology *tracing collector* introduced to denote both mark-and-sweep and copy collectors
Automatic storage reclamation, aka garbage collection, comes in two
main families, sometimes cooperating: the reference count collectors
and the tracing collectors. I may develop specifics of each family if
there is demand for it but my question is…
babou
- 19,645
- 43
- 77
2
votes
0 answers
Sweeping integrated into memory allocation: Why only fixed size objects?
In our language design book, it is mentioned that GC sweep can be integrated into allocation, such that when you call malloc for example, you sweep until you find a fitting object, which you then return (i.e. sweeping is not a different…
user85685