[Vm-dev] Frequency of stores into young objects

Tim Felgentreff timfelgentreff at gmail.com
Mon Jul 25 16:37:59 UTC 2016


No paper to cite from of the top of my head, but over 90% sounds reasonable
to me. Does Squeak count as a large application? Looking at JIT traces from
RSqueak/VM, most objects are completely omitted as they don't escape loops
(e.g. some BitBlt loops with 1,000,000 operations have only half a dozen
allocations and very few field stores - almost everything is just passed
around over just a few methods and then dies)

cheers,
Tim

Am 25.07.2016 4:35 nachm. schrieb "Clément Bera" <bera.clement at gmail.com>:


Hi,

We changed recently with Eliot some part of the JIT to generate more
efficient code for young objects mutation, speeding up a bit binary trees,
especially when read-only objects are available. We did it only for quick
inst var stores (popIntoInstanceVariable for inst var index between 0 and 7
on non context objects) as it was easier to narrow the optimization to this
case and it is the most common case.

When starting-up a REPL image, there are 7221 mutations of objects through
the quick inst var store bytecode, and 7082 are done on young objects.
Hence, 98% of mutations for these bytecodes are done on young objects.

Has anyone numbers from papers / large application on how many stores are
done on young objects compared to stores done on old objects ? Does 98%
sound reasonable ?

Regards,

Clement
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160725/ae5f4ef0/attachment.htm


More information about the Vm-dev mailing list