<p dir="ltr">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&#39;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)</p>
<p dir="ltr">cheers, <br>
Tim</p>
<div class="gmail_extra"><br><div class="gmail_quote">Am 25.07.2016 4:35 nachm. schrieb &quot;Clément Bera&quot; &lt;<a href="mailto:bera.clement@gmail.com">bera.clement@gmail.com</a>&gt;:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div dir="ltr">Hi,<div><br></div><div>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.</div><div><br></div><div>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. </div><div><br></div><div>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 ?</div><div><br></div><div>Regards,</div><div><br></div><div>Clement</div></div>
<br></blockquote></div><br></div>