StringBuilder is only faster if you're concatenating a lot of variables. In this case, there's no benefit to using stringbuilder. If he was concatenating all the numbers from i=0->1000, then yes, a stringbuilder would be better.
<br><br>It might be worth cracking out a profiler and seeing where the time is spent.<br><br>As NumberStore is a struct, you would get a performance boost if it was passed by ref as opposed to be value. I&#39;d guesstimate that it&#39;d be at least a double digit increase (&gt; 10%). If someone has the time to modify their mono checkout to change the 
Int32.ToString() codepath to pass the NumberStore by ref all the way through, let me know what the performance diff is.<br><br>It should only take about 10 mins of hacking to do the change. If the boost is significant enough, maybe a patch would be accepted into mono to do this.
<br><br>Alan.<br><br><div class="gmail_quote">On Nov 22, 2007 11:26 AM, Petit Eric &lt;<a href="mailto:surfzoid@gmail.com">surfzoid@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">2007/11/22, pablosantosluac &lt;<a href="mailto:pablosantosluac@terra.es">pablosantosluac@terra.es</a>&gt;:<br>&gt; Hi,<br>&gt;<br></div><div class="Ih2E3d">&gt; Ok, but I&#39;m not doing string &quot;concat&quot; but just converting to string, and
<br>&gt; using StringBuilder in this scenario, it isn&#39;t faster, as you have just<br>&gt; pointed to...<br></div>yes complety right, but the first idea was about the fact for string<br>performance, stringbuilder is fastest, but aparently not at the
<br>instance time, only to append a long text.<br>oki<br>now we are fixed lol<br><div><div></div><div class="Wj3C7c">&gt;<br>&gt; My point is that ToString is about 3 times slower in Mono than its .NET<br>&gt; counterpart. We&#39;ll try to get rid of it as much as we can, but some
<br>&gt; optimization would be really great.<br>&gt;<br>&gt; Thanks,<br>&gt;<br>&gt; pablo<br>&gt;<br>&gt;<br>&gt; ----- Original Message -----<br>&gt; From: &quot;Petit Eric&quot; &lt;<a href="mailto:surfzoid@gmail.com">
surfzoid@gmail.com</a>&gt;<br>&gt; To: &quot;pablosantosluac&quot; &lt;<a href="mailto:pablosantosluac@terra.es">pablosantosluac@terra.es</a>&gt;<br>&gt; Cc: &lt;<a href="mailto:mono-devel-list@lists.ximian.com">mono-devel-list@lists.ximian.com
</a>&gt;<br>&gt; Sent: Thursday, November 22, 2007 11:56 AM<br>&gt; Subject: Re: [Mono-dev] ToString() performace in Mono<br>&gt;<br>&gt;<br>&gt; &gt; Windows and String<br>&gt; &gt; val is 5999999 and time 4391<br>&gt; &gt;
<br>&gt; &gt; Windows and StringBuilder<br>&gt; &gt; val is 5999999 and time 5688<br>&gt; &gt;<br>&gt; &gt; Code For StringBuilder :<br>&gt; &gt;<br>&gt; &gt; using System;<br>&gt; &gt; using System.Collections.Generic;<br>
&gt; &gt; using System.Text;<br>&gt; &gt;<br>&gt; &gt; namespace compareCompare<br>&gt; &gt; {<br>&gt; &gt; &nbsp; &nbsp;class Program<br>&gt; &gt; &nbsp; &nbsp;{<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;static void Main(string[] args)<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;{<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;int ini = 
Environment.TickCount;<br>&gt; &gt;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.Text.StringBuilder k = new System.Text.StringBuilder();<br>&gt; &gt;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &lt; 6000000; ++i)<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{
<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;k = new System.Text.StringBuilder(i.ToString());<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &gt;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Console.WriteLine(&quot;val is {0} and time {1}&quot;, k,<br>&gt; &gt; Environment.TickCount
 - ini);<br>&gt; &gt;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;while (true)<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (Console.ReadKey() != null) break;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &gt;<br>&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;}<br>&gt; &gt; &nbsp; &nbsp;}
<br>&gt; &gt; }<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; 2007/11/22, pablosantosluac &lt;<a href="mailto:pablosantosluac@terra.es">pablosantosluac@terra.es</a>&gt;:<br>&gt; &gt;&gt; Anyway, how would you use it in the sample I attached to improve
<br>&gt; &gt;&gt; performance? I need to convert a different integer each pass...<br>&gt; &gt;&gt; ----- Original Message -----<br>&gt; &gt;&gt; From: &quot;Petit Eric&quot; &lt;<a href="mailto:surfzoid@gmail.com">surfzoid@gmail.com
</a>&gt;<br>&gt; &gt;&gt; To: &quot;pablosantosluac&quot; &lt;<a href="mailto:pablosantosluac@terra.es">pablosantosluac@terra.es</a>&gt;<br>&gt; &gt;&gt; Cc: &lt;<a href="mailto:mono-devel-list@lists.ximian.com">mono-devel-list@lists.ximian.com
</a>&gt;<br>&gt; &gt;&gt; Sent: Thursday, November 22, 2007 10:24 AM<br>&gt; &gt;&gt; Subject: Re: [Mono-dev] ToString() performace in Mono<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt; Do you try to replace String by a 
System.Text.StringBuilder ?<br>&gt; &gt;&gt; &gt;<br>&gt; &gt;&gt; &gt; 2007/11/22, pablosantosluac &lt;<a href="mailto:pablosantosluac@terra.es">pablosantosluac@terra.es</a>&gt;:<br>&gt; &gt;&gt; &gt;&gt; Hi,<br>&gt; &gt;&gt; &gt;&gt;
<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; I&#39;ve detected a performance hit on &quot;plastic server&quot; running on mono. I<br>&gt; &gt;&gt; &gt;&gt; was<br>&gt; &gt;&gt; &gt;&gt; actually shocked because when I checked something similar working with
<br>&gt; &gt;&gt; &gt;&gt; integers, Mono was actually faster than .NET. But it seems it is not<br>&gt; &gt;&gt; &gt;&gt; the<br>&gt; &gt;&gt; &gt;&gt; case with strings.<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; Please consider the following code sample:
<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; using System;<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; namespace compareCompare<br>&gt; &gt;&gt; &gt;&gt; {<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; class Class1
<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; {<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; static void Main(string[] args)<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; {<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int ini = Environment.TickCount;<br>&gt; &gt;&gt; &gt;&gt;
<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string k = string.Empty;<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for( int i = 0; i &lt; 6000000; ++i )<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; k = 
i.ToString();<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(&quot;val is {0} and time {1}&quot;, k,<br>&gt; &gt;&gt; &gt;&gt; Environment.TickCount
 - ini);<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&gt; &gt;&gt; &gt;&gt; &nbsp; &nbsp; }<br>&gt; &gt;&gt; &gt;&gt; }<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; And the following results:<br>&gt; &gt;&gt; &gt;&gt;
<br>&gt; &gt;&gt; &gt;&gt; &gt;compareCompare.exe<br>&gt; &gt;&gt; &gt;&gt; val is 5999999 and time 3525<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; &gt;&quot;c:\Archivos de programa\Mono-1.2.5.2\bin\mono.exe&quot;
<br>&gt; &gt;&gt; &gt;&gt; &gt;compareCompare.exe<br>&gt; &gt;&gt; &gt;&gt; val is 5999999 and time 11577<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; Thanks,<br>&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; pablo<br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt; &gt;&gt; _______________________________________________<br>&gt; &gt;&gt; &gt;&gt; Mono-devel-list mailing list<br>&gt; &gt;&gt; &gt;&gt; 
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>&gt; &gt;&gt; &gt;&gt; <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list
</a><br>&gt; &gt;&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;<br>&gt;<br>&gt;<br>_______________________________________________<br>Mono-devel-list mailing list<br><a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com
</a><br><a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br></div></div></blockquote></div><br>