Hi all,<div><br></div><div>I haven&#39;t had much time to do performance tzar work yet, but I did run nofib on the last few GHC releases to see the current trend. The benchmarks where run on my 64-bit Core i7-3770 @ 3.40GHz Linux machine. Here are the results:</div>

<div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">7.0.4 to 7.4.2:<div class="im" style="color:rgb(80,0,80)"><div><br></div><div><span style="color:rgb(34,34,34);font-family:&#39;courier new&#39;,monospace">------------------------------</span><span style="color:rgb(34,34,34);font-family:&#39;courier new&#39;,monospace">------------------------------</span><span style="color:rgb(34,34,34);font-family:&#39;courier new&#39;,monospace">--------------------</span><br style="color:rgb(34,34,34);font-family:&#39;courier new&#39;,monospace">

<span style="color:rgb(34,34,34);font-family:&#39;courier new&#39;,monospace">        Program           Size    Allocs   Runtime   Elapsed  TotalMem</span></div></div><div><div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div>

<div><font face="courier new, monospace">            Min          -1.6%    -57.3%    -39.1%    -36.4%    -25.0%</font></div><div><font face="courier new, monospace">            Max         +21.5%   +121.5%    +24.5%    +25.4%   +300.0%</font></div>

<div><font face="courier new, monospace"> Geometric Mean          +8.5%     -0.7%     -7.1%     -5.2%     +2.0%</font></div></div></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px"><font face="courier new, monospace"><br>

</font></div><div><font color="#222222" face="arial, sans-serif">The big loser here in terms of runtime is &quot;kahan&quot;, which I added to test tight loops involving unboxed arrays and floating point arithmetic. I believe there was a regression in fromIntegral RULES during this release, which meant that some conversions between fixed-width types went via Integer, causing unnecessary allocation.</font></div>

</div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">7.4.2 to 7.6.1:</span></div><div><br></div><div><font face="courier new, monospace" style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255)">--------------------------------------------------------------------------------<br>

        Program           Size    Allocs   Runtime   Elapsed  TotalMem<br>--------------------------------------------------------------------------------<br>            Min          -5.1%    -23.8%    -11.8%    -12.9%    -50.0%<br>

            Max          +5.3%   +225.5%     +7.2%     +8.8%   +200.0%<br> Geometric Mean          -0.4%     +2.1%     +0.3%     +0.2%     +0.7%</font><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">

<br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">The biggest loser here in terms of runtime is &quot;integrate&quot;. I haven&#39;t looked into why yet.</span><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">

<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">7.6.1 to 7.6.2:</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">

<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:&#39;courier new&#39;,monospace">--------------------------------------------------------------------------------</span><br style="font-family:&#39;courier new&#39;,monospace">

<span style="font-family:&#39;courier new&#39;,monospace">        Program           Size    Allocs   Runtime   Elapsed  TotalMem</span><br style="font-family:&#39;courier new&#39;,monospace"><div><font face="courier new, monospace">--------------------------------------------------------------------------------</font></div>

<div><font face="courier new, monospace">            Min          -2.9%     +0.0%     -4.8%     -4.4%     -1.9%</font></div><div><font face="courier new, monospace">            Max          +0.0%     +1.0%     +4.5%     +6.4%    +20.8%</font></div>

<div><font face="courier new, monospace"> Geometric Mean          -1.7%     +0.0%     +0.1%     +0.3%     +0.2%</font></div><div><br></div><div>I have two takeaways:</div><div><br></div><div> * It&#39;s worthwhile running nofib before releases as it does find some programs that regressed.</div>

<div> * There are some other regressions out there (i.e. in code on Hackage) that aren&#39;t reflected here, suggesting that we need to add more programs to nofib.</div><div><br></div><div>Cheers,</div><div>Johan</div><div>

<br></div></div></div>