<div class="gmail_quote"><div>Hi, Daniel -</div><div><br></div><div>Thanks for taking the new code for a test drive!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">The interesting part is the comparison between text and vanilla String I/O,</div>
the difference is smaller than I expected for text-0.8.0.0.</blockquote><div><br></div><div>Yes. Much of this is due to the new encoding stuff on Handles in GHC 6.12, which is slow. Its performance wasn&#39;t so noticeable when it was only shipping String around, but it&#39;s much more visible with Text. It&#39;s far slower on a Mac than on Linux, in case that&#39;s relevant.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">The performance of text-0.8.0.0 has improved significantly over that of<br>
text-0.7.2.1 (for the tested features), the improvement of the replacing<br>
algorithm is however not as impressive as that of I/O.<br></blockquote><div><br></div><div>I&#39;d bet you that&#39;s mostly because the program is I/O bound, in the sense that it&#39;s spending time going through the layers of buffering and translation that now make up a Handle. Any improvement in other code is going to be hard to see because of that.</div>
<div><br></div><div>The other major consideration, both for this case and the first one you note, is that the inliner in 6.12 chokes on code that uses stream fusion: it boxes and unboxes vast quantities of state. That kills performance due to both the boxing and unboxing overhead and the increased number of nursery GCs.</div>
<div><br></div><div>The marvelous new 6.13 inliner does a <i>much</i> better job here - that&#39;s where I see those 3x performance improvements for free.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
What&#39;s *really* bad is the space behaviour.<br></blockquote><div><br></div><div>What are you using to measure that?</div><div><br></div><div>Also, please don&#39;t forget to post your benchmark code when you make observations like this, as that way I can reproduce your measurements and fix problems. I appreciate your help!</div>
<div><br></div><div>Regards,</div><div>Bryan.</div></div>