mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
Added an introductory blurb about GC that I had lying around.
This commit is contained in:
parent
a9e40ed0d0
commit
c5ee546dda
1 changed files with 15 additions and 0 deletions
|
@ -2,6 +2,21 @@
|
|||
@node Memory Management
|
||||
@chapter Memory Management and Garbage Collection
|
||||
|
||||
Guile uses a @emph{garbage collector} to manage most of its objects.
|
||||
This means that the memory used to store a Scheme string, say, is
|
||||
automatically reclaimed when no one is using this string any longer.
|
||||
This can work because Guile knows enough about its objects at run-time
|
||||
to be able to trace all references between them. Thus, it can find
|
||||
all 'life' objects (objects that are still in use) by starting from a
|
||||
known set of 'root' objects and following the links that these objects
|
||||
have to other objects, and so on. The objects that are not reached by
|
||||
this recursive process can be considered 'dead' and their memory can
|
||||
be used for new objects.
|
||||
|
||||
When you are programming in Scheme, you don't need to worry about the
|
||||
garbage collector. When programming in C, there are a few rules that
|
||||
you must follow so that the garbage collector can do its job.
|
||||
|
||||
@menu
|
||||
* Garbage Collection::
|
||||
* Memory Blocks::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue