<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 18, 2017 at 7:45 AM, Eliot Miranda <span dir="ltr"><<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div dir="ltr">Hi All,<div><br></div><div>    Clément and I have been looking at primitive performance in the context of string hash.  We'll say more about string hash in a later message (and there is nothing to be alarmed about here).  But it is worth describing the performance measurements of the various kinds of primitive dispatch in Cog.  The following measurements are collected from a 64-bit Squeak trunk image with a 64-bit Cog Spur VM with four different implementations of hashMultiply, three of them primitive.  The times are collected on a 2.3 GHz Intel Core i7 MacMini.</div><div><br></div><div>The doit below compares the time taken to go round a loop containing 10 unrolled copies of an operation 10 million times, for a total of 100 million invocations of the operation.  The operations are</div><div>- doing nothing</div><div>- sending yourself</div><div>- invoking the SmallInteger>>hashMultiply method</div><div>- invoking a version of hashMultiply written as a normal interpreter primitive (more on this below)</div><div>- invoking a version of hashMultiply written as a C function called from machine code</div>- invoking a version of hashMultiply written as a machine code primitive</div></blockquote><div><br></div><div>Where does lowcode fit into this picture?</div><div><br></div><div>cheers -ben</div></div></div></div>