[Mono-dev] ToString() performace in Mono

Petit Eric surfzoid at gmail.com
Thu Nov 22 05:56:24 EST 2007


Windows and String
val is 5999999 and time 4391

Windows and StringBuilder
val is 5999999 and time 5688

Code For StringBuilder :

using System;
using System.Collections.Generic;
using System.Text;

namespace compareCompare
{
    class Program
    {
        static void Main(string[] args)
        {
            int ini = Environment.TickCount;

            System.Text.StringBuilder k = new System.Text.StringBuilder();

            for (int i = 0; i < 6000000; ++i)
            {
                k = new System.Text.StringBuilder(i.ToString());
            }

            Console.WriteLine("val is {0} and time {1}", k,
 Environment.TickCount - ini);

            while (true)
            {
                if (Console.ReadKey() != null) break;
            }

        }
    }
}




2007/11/22, pablosantosluac <pablosantosluac at terra.es>:
> Anyway, how would you use it in the sample I attached to improve
> performance? I need to convert a different integer each pass...
> ----- Original Message -----
> From: "Petit Eric" <surfzoid at gmail.com>
> To: "pablosantosluac" <pablosantosluac at terra.es>
> Cc: <mono-devel-list at lists.ximian.com>
> Sent: Thursday, November 22, 2007 10:24 AM
> Subject: Re: [Mono-dev] ToString() performace in Mono
>
>
> > Do you try to replace String by a System.Text.StringBuilder ?
> >
> > 2007/11/22, pablosantosluac <pablosantosluac at terra.es>:
> >> Hi,
> >>
> >>
> >> I've detected a performance hit on "plastic server" running on mono. I
> >> was
> >> actually shocked because when I checked something similar working with
> >> integers, Mono was actually faster than .NET. But it seems it is not the
> >> case with strings.
> >>
> >> Please consider the following code sample:
> >>
> >>
> >> using System;
> >>
> >> namespace compareCompare
> >> {
> >>     class Class1
> >>     {
> >>         static void Main(string[] args)
> >>         {
> >>             int ini = Environment.TickCount;
> >>
> >>             string k = string.Empty;
> >>
> >>             for( int i = 0; i < 6000000; ++i )
> >>             {
> >>                 k = i.ToString();
> >>             }
> >>
> >>             Console.WriteLine("val is {0} and time {1}", k,
> >> Environment.TickCount - ini);
> >>         }
> >>     }
> >> }
> >>
> >>
> >> And the following results:
> >>
> >> >compareCompare.exe
> >> val is 5999999 and time 3525
> >>
> >> >"c:\Archivos de programa\Mono-1.2.5.2\bin\mono.exe" compareCompare.exe
> >> val is 5999999 and time 11577
> >>
> >>
> >> Thanks,
> >>
> >>
> >> pablo
> >>
> >> _______________________________________________
> >> Mono-devel-list mailing list
> >> Mono-devel-list at lists.ximian.com
> >> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> >>
>
>



More information about the Mono-devel-list mailing list