liberty-eiffel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Liberty-eiffel] Garbage Collection for small heaps


From: Cyril ADRIAN
Subject: Re: [Liberty-eiffel] Garbage Collection for small heaps
Date: Tue, 19 Aug 2014 08:57:15 +0200


2014-08-13 10:39 GMT+02:00 Christian Rinderknecht <address@hidden>:
As I mentionned in an earlier email to the list (improperly entitled),
I am trying to use LibertyEiffel on a low end system (32-bit, 64K
heap). In that email, I raised the issue of I/O that seem to require
"large" buffers, whereas I would like none or very small ones.

I/O buffers are statically created with default capacities. For example, STD_OUTPUT has a default buffer capacity of 4096 bytes.

Most core libraries are thought with a no_gc flag in mind; they keep and reuse memory instead of releasing it.

The important side-effect is that buffer capacities may grow but never decrease.

The other issue I would like to bring to your kind attention here is
the garbage collector. Since memory size is the first constraint for
me, I would like to trigger collections more often and on lower
thresholds. Currently, I tried to patch the values of RSOC_LIMIT and
FSOC_LIMIT, but I do not fully understand the effects of my
modifications.

Would someone be knowledgeable enough to enlighten my way?

RSOC means ReSizeable Object Chunk, FSOC means Fixed-Size Object Chunk. The object "chunks" are slices of memory. Resizeable objects are native arrays: each object has its own size. Fixed objects are kept together per type, since each object of a same type has exactly the same size.

The native GC is a complex beast, and I am not sure I understand it completely. One is not helped by the many acronyms. You could peruse that paper: http://wiki.liberty-eiffel.org/index.php/Papers#Compiler_Support_to_Customize_the_Mark_and_Sweep_Algorithm.

Cheers,

Cyril

reply via email to

[Prev in Thread] Current Thread [Next in Thread]