Difference between revisions of "Garbage collector"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
Line 17: Line 17:
 
The missing parts are:
 
The missing parts are:
 
* a lot of testing (esp. dynamic arrays, weak references, agents)
 
* a lot of testing (esp. dynamic arrays, weak references, agents)
* total GC cycle at the end of the program (Eiffel requires that all the objects are disposed at exit, and some programs or libraries rely on that behaviour)
+
* total GC cycle at the end of the program (Eiffel requires that all the objects are disposed at exit, and some programs or libraries rely on that behaviour, usually for checks — is it important?)
 
* Liberty does not make use of the parallel or incremental collectors
 
* Liberty does not make use of the parallel or incremental collectors

Revision as of 19:36, 5 January 2014

Liberty Eiffel provides two garbage collector implementations.

Most core libraries are also well equipped to minimize memory requirements in the case that no GC is used.

Native GC

The native GC is generated at the same time as the rest of the code, allowing efficient use of the memory by splitting it in chunks of known size.

See this paper for details.

BDW GC

The Boehm-Demers-Weiser conservative collector is also supported. The minimal required version is currently 7.2.

See the github repository

The missing parts are:

  • a lot of testing (esp. dynamic arrays, weak references, agents)
  • total GC cycle at the end of the program (Eiffel requires that all the objects are disposed at exit, and some programs or libraries rely on that behaviour, usually for checks — is it important?)
  • Liberty does not make use of the parallel or incremental collectors