[Mono-dev] Trivial Enumerable Optimizations

Avery Pennarun apenwarr at gmail.com
Fri May 9 08:53:58 EDT 2008


On 5/9/08, Jonathan Pryor <jonpryor at vt.edu> wrote:
>            catch {
>                // ignore; collection has > int.MaxValue elements,
>                // so count manually below.
>            }
[...]
>  This will suffer an obvious performance penalty if the collection has
>  over int.MaxValue elements (assuming .Count throws an exception when
>  that happens), but as most (currently all?) collections will have less
>  than int.MaxValue elements, this should be a performance win.

Hmm, are you sure you really want to count them all manually when
there are greater than 2 billion elements in the data structure?  If I
was programming an app that used such a large array, I think I'd
rather just get a "too large/unimplemented" exception than have my
program go from O(1) to O(n) (at best), with a huge n, as soon as I
crossed a particular length threshold.  It's much easier to debug an
exception than a near-infinite loop...

Avery


More information about the Mono-devel-list mailing list