[Oberon] PO2013 - Show Heap Blocks
Joerg
joerg.straube at iaeth.ch
Wed Jun 24 11:04:23 CEST 2020
Hi Tomas
The heap is not soooo dynamic after all;
it only changes after a call to NEW().
As long as a program runs, the GC is NOT working. The GC is only called from the Oberon loop. This is the reason, why you can‘t compile the whole system + compiler source in one go on a 1MB machine, as the compiler (ORB) needs a lot of memory that is not freed up by the GC until the compiler ends.
I have a solution for that but this is another topic.
br
Jörg
> Am 24.06.2020 um 11:53 schrieb Tomas Kral <thomas.kral at email.cz>:
>
>
>>
>> The heap has two different blocks
>> a) free blocks
>> b) blocks allocated by NEW
>>
>> - list0 to list3 cover a).
>> - the garbage collector tries to catch all b).
>
> Paul, Joerg,
>
> Thanks for encouragement, this helps. Lists chain free blocks, need to
> realise this once again.
>
> Heap is so dynamic, e.g. clicking Tools.Inspect command allocates heap,
> so the situation one looks at changes constantly.
>
> I use SWI[5] to temporarily disable GC (patched Kernel).
> Plus some tools in the hope to catch a still picture.
>
> --
> Tomas Kral <thomas.kral at email.cz>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
More information about the Oberon
mailing list