[Mono-devel-list] Re: [Mono-patches] r46353 - trunk/mcs/class/System.XML/System.Xml
Atsushi Eno
atsushi at ximian.com
Wed Jun 22 14:45:49 EDT 2005
Ok, it is an interesting tip. Now checked in svn as r46380. Thanks.
Atsushi Eno
> I think this needs to be changed to make it optimal for the normal case.
> Gonzalo's situation is a corner case: 1 huge field in the middle of tons
> of stuff. However, normally, there are many, small, similarly sized
> fields. So what happens is that the string builder does the standard
> "double when there is too much data". Most strings will end up being (on
> average) 25% larger than they need to be.
>
> Therefore, we should do something like this:
>
> if (sb.Capacity < 100)
> return sb.Substring (0, sb.Length);
> else
> return sb.ToString ();
>
> That way, if the string is small, "substring" will be used. It will
> create a string of the exact size we want. The stringbuilder buffer can
> then be reused.
>
> -- Ben
>
> _______________________________________________
> 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