2004-11-07 Ben Maurer <bmaurer@ximian.com>
commita52c1e12928fbe0eece945b8687c3b3efa5d7b48
authorBen Maurer <benm@mono-cvs.ximian.com>
Sun, 7 Nov 2004 22:49:19 +0000 (7 22:49 -0000)
committerBen Maurer <benm@mono-cvs.ximian.com>
Sun, 7 Nov 2004 22:49:19 +0000 (7 22:49 -0000)
tree0a375a47da380c41788b39bceec00e51f2ffb790
parente5e4b7bf47d7edf9a77fb48b8d812cc3a4ca1a30
2004-11-07  Ben Maurer  <bmaurer@ximian.com>

* IntegerFormatter.cs: Avoid .ToCharArray, it was being used in
places where there was no reason for it. Also, allocate buffers
using stackalloc. This avoids the cost of allocating a char []
buffer in the gc. Also did some minor style changes.

This gives a huge reduction in memory allocation for integer formatting.
often you see something like:

665 KB System.IntegerFormatter::FormatGeneral(long,int,NumberFormatInfo,bool,int)
    463 KB    11710 System.Char[]
    201 KB    11710 System.String

This patch removes the char [] part. (it also removes the
tochararray, which accounts for even more.

svn path=/trunk/mcs/; revision=35792
mcs/class/corlib/System/ChangeLog
mcs/class/corlib/System/IntegerFormatter.cs