[Mono-list] List.FindAll method implementation
Miguel de Icaza
miguel at novell.com
Mon Mar 19 18:04:07 EDT 2007
Hello Juan,
> Because there's no way to know the size of the stack in any moment in
> time, Miguel suggested me to limit this new method to use only 8KB of
> the stack... so it will be useful for list with 8 * 1024 * 8 elements
> or less. Bigger lists will use the old algorithm.
I just had an idea: if the memory to be allocated is too large, instead
of using stackalloc, you could use:
using System.Runtime.InteropServices;
IntPtr Marshal.AllocHGlobal (size);
and release it with:
Marshal.FreeHGGlobal (IntPtr p);
That way we could always use the fast mechanisms.
> It also includes few testcases.
>
> Juan C. Olivares
> www.juancri.com
>
> On 3/18/07, Juan C. Olivares < juancri at gmail.com> wrote:
> I'll check...
>
> Juan Cristóbal Olivares
>
> www.juancri.com
>
> On 3/18/07, Miguel de Icaza <miguel at novell.com> wrote:
> Hello,
>
> I feel a bit strange that the bools are allocated
> using
> numbers.Count but the loop uses this._items. I
> rather keep them in
> parallel.
>
> Also, another idea might be to use three code
> paths depending on the
> number of items:
>
> * [0,N] use bools.
> * [N,M] use bitbools.
> * [M,infinity] use the old method.
>
> Thread stacks could not be very large, and you
> would like to avoid a
> crash in that condition. Actually, I wonder if
> stackalloc returns a
> null if the requested size is larger than the
> available stack.
>
> Miguel.
>
> > Attached.
> >
> > Juan C. Olivares
> > www.juancri.com
> >
> > On 3/18/07, Miguel de Icaza < miguel at novell.com>
> wrote:
> > Hello,
> >
> > >
> > > Do you have any comment?. I could send a
> patch...
> >
> > These numbers look fantastic. We would
> love to see a patch.
> >
> > > best regards
> > >
> > > Juan C. Olivares
> > > www.juancri.com
> > >
> > >
> > >
> > >
> _______________________________________________
> > > Mono-list
> maillist - Mono-list at lists.ximian.com
> > >
> http://lists.ximian.com/mailman/listinfo/mono-list
> >
> >
> > _______________________________________________
> > Mono-list maillist - Mono-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list
>
>
>
>
>
>
>
>
>
>
More information about the Mono-list
mailing list