<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi,<br>
    <br>
    that did the trick. An over 20 times improvement.<br>
    <br>
    So the culprit is mixed Integer and Float arithmetic.<br>
    <br>
    My code is:<br>
    <br>
    ml := Multiline1 new.<br>
    ml station: #futm40 testRepeat: 1.<br>
    ml station: #final testRepeat: 1.<br>
    time := 0.<br>
    1 to: 864000 do: [:i| <br>
    &nbsp;&nbsp;&nbsp; ml doOneStep: time.<br>
    &nbsp;&nbsp;&nbsp; i \\ 50 = 0 ifTrue: [ml canEnterNewRack ifTrue: <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [ml addRack: (B8DutRack fullOfB8MostCto) time: time].<br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (ml canRemoveTestedRack: time) ifTrue: <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [ml removeRack: time]]. <br>
    &nbsp;&nbsp;&nbsp; time := time + 1]. <br>
    <br>
    I changed time into a Float. In the Tally you will find
    ...canStartNextTest: time which does ^time &gt; (testStart +
    testDuration)<br>
    <br>
    testDuration is Float, time was Integer resulting in two
    conversions.<br>
    <br>
    So you can print this snippet ant then change time to anInteger:<br>
    Time millisecondsToRun: [<br>
    |time testStart testDuration|<br>
    time := 0.0.<br>
    testDuration := 0.2.<br>
    1 to: 100000 do: [:i| <br>
    &nbsp;&nbsp;&nbsp; testStart := time - 1.<br>
    &nbsp;&nbsp;&nbsp; time &gt; (testStart + testDuration).<br>
    &nbsp;&nbsp;&nbsp; time := time + 1.0]] <br>
    <br>
    In 3.8 the same operation brought down the timr from 158 to 139
    seconds.<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 27.09.2013 14:20, schrieb Herbert
      K&ouml;nig:<br>
    </div>
    <blockquote cite="mid:5245780E.9000008@gmx.net" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Hi Nicolas,<br>
      <br>
      I don't print Floats consciously. Basically I do message sends,
      iterate over collections and some mixed Integer and Float
      arithmetic. <br>
      <br>
      This may be where the bitShift originates from. I'll make it all
      Float to confirm the issue. <br>
      <br>
      For the interested, I simulate a production line in one second
      steps (hence integer) but internally the times are Floats.<br>
      <br>
      Then I'll follow David's advice and report back.<br>
      <br>
      Attached are the spy results.<br>
      <br>
      <br>
      <div class="moz-cite-prefix">Am 27.09.2013 13:06, schrieb Nicolas
        Cellier:<br>
      </div>
      <blockquote
cite="mid:CAKnRiT4eW=gM43VpP8uY=+snBVJQcSgaiJkXkUbyyqbNjKx8aw@mail.gmail.com"
        type="cite">
        <div dir="ltr">
          <div>
            <div>
              <div>Hi Herbert,<br>
                you can send the tally or a code snippet if you can
                isolate the Pb.<br>
              </div>
              Something that is less efficient in 4.x trunk image (but
              correct) is printing Float.<br>
              This is because we now print the minimal decimal
              representation that can be re-interpreted unchanged, while
              we formerly printed an approximate decimal representation
              that would not - several different Float did have the same
              printString.<br>
            </div>
            Otherwise, there can be some other change...<br>
          </div>
          Also you'd better use the advanced tally from Andreas Raab if
          you are using COG, because it's more accurate<br>
          (I do not remember the details, where to find it, etc...).<br>
        </div>
        <div class="gmail_extra"><br>
          <br>
          <div class="gmail_quote">2013/9/27 Herbert K&ouml;nig <span
              dir="ltr">&lt;<a moz-do-not-send="true"
                href="mailto:herbertkoenig@gmx.net" target="_blank">herbertkoenig@gmx.net</a>&gt;</span><br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"> Hi
              Folks,<br>
              <br>
              I'm doing some simulation in Squeak 3.8 and as some tests
              ran over two minutes I decided to try a more recent image
              with cog vm.<br>
              <br>
              To my surprise 4.4 took around 5 times as long as 3.8. I
              believe I do nothing out of the ordinary here. Time is
              spent in:<br>
              24% SmallInteger&gt;&gt;negative; 22%
              SmallInteger&gt;&gt;bitShift: (I don't use bitShift:
              explicitly) and 20% Array&gt;&gt; collect:<br>
              <br>
              Which image and VM should I use to verify this before
              sending the complete message tallies?<br>
              <br>
              Cheers<br>
              <br>
              Herbert<br>
              <br>
              I used the following recent image / vm:<br>
              Image<br>
              -----<br>
              C:\daten\Squeak\4_4Dev\Squeak4.4-DCSE.image<br>
              Squeak4.4<br>
              latest update: #12333<br>
              Current Change Set: Knacken mit APX<br>
              Image format 6505 (32 bit)<br>
              <br>
              Virtual Machine<br>
              ---------------<br>
              C:\daten\Squeak\4_4Dev\Squeak.exe<br>
              Croquet Closure Cog VM [CoInterpreter
              VMMaker.oscog-eem.302]<br>
              Win32 built on Jul 15 2013 15:35:13 Compiler: 3.4.4
              (cygming special, gdc 0.12, using dmd 0.125)<br>
              platform sources revision VM: r2749 <a
                moz-do-not-send="true"
                href="http://www.squeakvm.org/svn/squeak/branches/Cog"
                target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a>
              Plugins: r2545 <a moz-do-not-send="true"
                href="http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins"
                target="_blank">http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins</a><br>
              CoInterpreter VMMaker.oscog-eem.302 uuid:
              2ac39432-ac54-4584-964e-b129c90792f4 Jul 15 2013<br>
              StackToRegisterMappingCogit VMMaker.oscog-eem.302 uuid:
              2ac39432-ac54-4584-964e-b129c90792f4 Jul 15 2013<br>
              <br>
            </blockquote>
          </div>
          <br>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>