About become: improvements

SD
stephane ducasse
Tue, Jul 26, 2022 9:26 AM

Hi guys

This list is silent because we forgot systematically to post to it… :)
We will try to catch up.

Here is a nice email from our internal academix list.

A more detailed summary

We reviewed NicoR’s blogpost on how to access the VM simulator
https://thepharo.dev/2022/06/30/setting-up-your-environment-for-working-on-the-pharo-vm/ https://thepharo.dev/2022/06/30/setting-up-your-environment-for-working-on-the-pharo-vm/

We reviewed the #become: implementation. We have some notes to publish
https://notes.inria.fr/rI0U--tWT1GP1c4O3hve_Q?edit https://notes.inria.fr/rI0U--tWT1GP1c4O3hve_Q?edit

We profiled it with instruments and saw some performance bottlenecks. We were only able to do 35K become per second, which is not a lot. We did some little improvements to avoid those bottlenecks and improve performance by ~500x. Now we can do 2M become per second.

Then Daniel showed us the primitive #adoptInstance: and we did a similar analysis.

Finally, Nahuel showed his advances in the permanent graph selection, and we did some garbage collection benchmarks. We saw that moving most packages code (classes, methods, literals,...) can cut full GC pauses by ~half.

Stef

Hi guys This list is silent because we forgot systematically to post to it… :) We will try to catch up. Here is a nice email from our internal academix list. A more detailed summary We reviewed NicoR’s blogpost on how to access the VM simulator https://thepharo.dev/2022/06/30/setting-up-your-environment-for-working-on-the-pharo-vm/ <https://thepharo.dev/2022/06/30/setting-up-your-environment-for-working-on-the-pharo-vm/> We reviewed the `#become:` implementation. We have some notes to publish https://notes.inria.fr/rI0U--tWT1GP1c4O3hve_Q?edit <https://notes.inria.fr/rI0U--tWT1GP1c4O3hve_Q?edit> We profiled it with instruments and saw some performance bottlenecks. We were only able to do 35K become per second, which is not a lot. We did some little improvements to avoid those bottlenecks and improve performance by ~500x. Now we can do 2M become per second. Then Daniel showed us the primitive `#adoptInstance:` and we did a similar analysis. Finally, Nahuel showed his advances in the permanent graph selection, and we did some garbage collection benchmarks. We saw that moving most packages code (classes, methods, literals,...) can cut full GC pauses by ~half. Stef