[Mono-devel-list] PATCH: Lazily allocate ArrayList buffers
Martin Baulig
martin at ximian.com
Tue Feb 17 03:42:59 EST 2004
On Sun, 2004-02-15 at 07:10, Ben Maurer wrote:
> Attached is a patch that makes ArrayLists allocate their buffers only on
> the first addition to the list. For example the following code:
>
> ArrayList ar = new ArrayList ();
> ar = null;
>
> will not allocate an object [].
>
> Running the profiler on a few applications, it seems that the patch has
> some effect. One notable example is MonoDevelop where it prevented 2/3
> of the allocations of arraylists.
>
> It seems that MS implements this behavior in the v2 framework. Using a
> beta of the code, I ran:
>
> ArrayList ar = new ArrayList ()
> COnsole.WriteLine (ar.Capacity);
>
> It returned 0. This seems to indicate that the capacity (which is the
> size of the array) is zero until something has been added.
Hi Ben,
your patch looks great, but I think we should really make Capacity
return 0 in this case.
--
Martin Baulig <martin at ximian.com>
Now blogging ! http://primates.ximian.com/~martin/blog
More information about the Mono-devel-list
mailing list