On Tue 29 Nov 2011 12:06, l...@gnu.org (Ludovic Courtès) writes: > RET should never be left uninitialized, and the caller should be > prepared to deal with RET == 0.
Oops, will fix. > (The code itself doesn’t have to #ifdef __linux__ because other OSes > provides an implementation that mimics Linux’s /proc.) Interesting, didn't know that. In any case it should DTRT if statm isn't there. > My impression was that FREE_SPACE_DIVISOR was quite coarse-grain. > What’s your experience with that? It has varying precision. For example in the (factorial 100000) example, it gets to 1800 at some point. Quantizing the target_free_space_divisor is an issue. > Could you run the stuff under gc-benchmarks/ with and without the > heuristic, as in [0]? Sure. > Also, could you check with a program that actually mixes malloc + > GC-alloc how it behaves? Does the factorial example not count? > I tried to reproduce the infamous iconv issue, which would have been a > simple way to check, but failed: > > (with-fluids ((%default-port-encoding "UTF-16BE")) > (let loop () (open-output-string ) (loop))) > > Memory growth appears to be bounded here. What do you mean? Do you mean that this patch fixes the iconv issue, or that you couldn't reproduce it before? Regards, Andy -- http://wingolog.org/