<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>well, we tried but it doesn't get a big speed up... 
just about 2 to 5%</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=alan.mcgovern@gmail.com href="mailto:alan.mcgovern@gmail.com">Alan 
  McGovern</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=surfzoid@gmail.com 
  href="mailto:surfzoid@gmail.com">Petit Eric</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=pablosantosluac@terra.es 
  href="mailto:pablosantosluac@terra.es">pablosantosluac</A> ; <A 
  title=mono-devel-list@lists.ximian.com 
  href="mailto:mono-devel-list@lists.ximian.com">mono-devel-list@lists.ximian.com</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, November 22, 2007 3:23 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Mono-dev] ToString() 
  performace in Mono</DIV>
  <DIV><BR></DIV>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-&gt;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'd 
  guesstimate that it'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="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <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'm not doing string "concat" but just 
    converting to string, and <BR>&gt; using StringBuilder in this scenario, it 
    isn'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'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: "Petit Eric" &lt;<A 
    href="mailto:surfzoid@gmail.com"> surfzoid@gmail.com</A>&gt;<BR>&gt; To: 
    "pablosantosluac" &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("val is {0} and time {1}", 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: 
    "Petit Eric" &lt;<A href="mailto:surfzoid@gmail.com">surfzoid@gmail.com 
    </A>&gt;<BR>&gt; &gt;&gt; To: "pablosantosluac" &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've detected a performance hit on 
    "plastic server" 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("val is {0} and time {1}", 
    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;"c:\Archivos de 
    programa\Mono-1.2.5.2\bin\mono.exe" <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></BLOCKQUOTE></BODY></HTML>