William Djaja Tjokroaminata wrote: > 1) When Ruby memory is dynamic, we don't need to use ALLOC to free memory > periodically, because the garbage collector is already being called > often by Ruby internals. If we use ALLOC, then the garbage collector is > called even more often, which may result in execution performance > degradation. Suppose your ruby code produces a large amount of garbage, but not enough to trigger GC, and then your C code takes over for a while and starts allocating. Unless you call back into ruby code or manually invoke ALLOC or GC, that amount of garbage is, in effect, deducted from the space your C code has to play with.