<div dir="ltr">Hi Nicolas,<div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 22, 2014 at 3:21 PM, Nicolas Cellier <span dir="ltr">&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> <br><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
2014-04-23 0:05 GMT+02:00 Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span>:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> <br><div dir="ltr">Hi All,<div><br></div><div>    I should write a blog post on this, but I can&#39;t wait...</div>

<div>
<br></div><div>In recent days I&#39;ve written a script to build a Cog VMMaker image from Squeak 4.5.  See <a href="http://www.squeakvm.org/svn/squeak/branches/Cog/image" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog/image</a>.  This has allowed me to run the current Cog VM against Spur side-to-side.</div>



<div><br></div><div>To build a Cog VMMaker image on my 2.2GHz Intel Core i7 MacBook Pro using the current Cog VM takes about 2 and a half minutes:</div><div><br></div><div><div>McStalker.image$ time oscfvm CogVMMaker.image BuildSqueak45Image.st </div>



<div>real    2m30.671s</div><div>user    2m15.683s</div><div>sys     0m5.283s</div><div><br></div><div>To build the equivalent image using Spur takes about 1 and a half minutes:</div><div><div>McStalker.image$ time spurcfvm CogVMMaker-spur.image BuildSqueak45Image.st </div>



<div>real    1m34.943s</div><div>user    1m23.666s</div><div>sys     0m6.810s</div></div><div><br></div><div>Comparing:</div><div><br></div><div><div>94.943 - 150.671 / 150.671 * 100 -36.99</div><div>83.666 - 135.681 / 135.681 * 100 -38.34</div>



<div>150.671 / 94.943 1.59</div><div>135.681 / 83.666 1.62</div></div><div><br></div><div>that&#39;s about a -37% speedup, or 1.6x faster.</div>-- <br>best,<div>Eliot</div>
</div></div>
<br></blockquote><div><br></div><div>So this is loading .mcz from package cache, uncompressing, compiling, installing the packages.<br></div></div></div></div></blockquote><div><br></div><div>Exactly.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>I presume this qualifies as a macro benchmark...<br></div></div></div></div></blockquote><div><br></div><div>yes :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div>I didn&#39;t follow the full flow of changes, how difficult is it right now to bootstrap a spur.image?</div></div></div></blockquote><div><br></div>
<div>Right now the transformation of the images is straight-forward, e.g.:</div><div><br></div><div>SpurBootstrap bootstrapImage: &#39;Squeak-4.5-All-in-One.app/Contents/Resources/Squeak4.5-13680&#39;<br></div><div> </div>
</div>But fixing the Monticello packages is a little more involved.  One has to collect the relevant packages in a directory (Kernel, Collections &amp; System) and then do e.g.</div><div class="gmail_extra"><div class="gmail_extra">
<span style="white-space:pre">        </span>(SpurBootstrapMonticelloPackagePatcher new</div><div class="gmail_extra"><span class="" style="white-space:pre">                        </span>from: &#39;image/package-cache&#39;</div><div class="gmail_extra">
<span class="" style="white-space:pre">                        </span>to: &#39;image/spur-package-cache&#39;)</div><div class="gmail_extra"><span class="" style="white-space:pre">                </span>patch</div><div class="gmail_extra">and then load the packages into the Spur image.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">When I get my ass in gear this step should be unnecessary since <a href="http://source.squeak.org/spur">http://source.squeak.org/spur</a> is ready and waiting.  So the Spur trunk for Squeak V5.0 will parallel Squeak 4.6 and hopefully supplant it soon enough.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">The main hold up right now is the combination of the facts that the current compaction algorithm doesn&#39;t work well, and image start-up always adds 50% of image size as free space, so the image balloons on each save.  I&#39;m finally getting back to working on the compaction algorithm after a very satisfying three weeks working with Clément Béra on Sista.  So I hope to have movement on releasing Spur for the 4.6/5.0 development cycle soon.</div>
</div><div class="gmail_extra">-- <br>best,<div>Eliot</div>
</div></div>