[Pharo-dev] VM with fragmented memory
alexandre.bergel at me.com
Mon Nov 25 10:42:10 EST 2013
I have a question still on segmented memory.
Consider an object “c := OrderedCollection new”. It is likely that the internal "array” and the object c will be in the same generation and in the same memory segment.
If I add, let’s say, 30 000 000 elements into c. After the addition the array will be very very big. Which means that it may be in a different segment memory than the one that contains “c”. Do you feel this may be a problem? I am thinking about a long jump between c and array. Long jumps cost more than short jumps right?
Do you feel there are some suboptimal situation with this situation?
NB: I cc the mailing list to see whether other may help in understand better what’s going on with segment and generations
Alexandre Bergel http://www.bergel.eu
On Nov 19, 2013, at 1:37 PM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> Hi Alexandre,
> On Mon, Nov 18, 2013 at 7:40 AM, Alexandre Bergel <alexandre.bergel at me.com> wrote:
> Hi Eliot,
> Stef told me you are working hard on improving the Pharo VM.
> In particular making the VM support fragmented memory. If I understand correctly, this will relieve the VM from having a continuous block of memory to hold the whole image. Really cool!
> A better term is segmented memory. fragmentation in memory management means free space getting divided into too small pieces to be useful.
> I have a general question regarding VM. Are you aware of other Virtual machines supporting this? Does the Java VM support fragmented memory? .Net? V8?
> Any VM that uses the train algorithm supports segmented memory. Any VM that uses "pools" or "regions" uses segmented memory. VisualWorks' VM supports segments. I'm pretty sure that V8 .Net & HotSpot provide segmented memory.
> I would like to mention this in a research paper I am working on.
> Alexandre Bergel http://www.bergel.eu
More information about the Pharo-dev