Fwd: Map / IntMap laziness (was: export toDescList from Data.Map)

apfelmus apfelmus at quantentunnel.de
Fri Sep 26 16:43:11 EDT 2008

Scott Dillard wrote:
> (Sorry for the spam, but I don't understand why the body of my messages is
> being stripped. Something to do with the attachments?)

I'm reading it through gmane and it works for me...

> ---------- Forwarded message ----------
> From: Scott Dillard <sedillard at gmail.com>
> Date: Fri, Sep 26, 2008 at 11:57 AM
> Subject: Map / IntMap laziness (was: export toDescList from Data.Map)
> To: Evan Laforge <qdunkan at gmail.com>
> Cc: libraries at haskell.org
> On Fri, Sep 26, 2008 at 8:20 AM, Evan Laforge <qdunkan at gmail.com> wrote:
>> Of course, anything that boosts performance is a win.  Does anyone
>> know of any Map benchmarks?  I suppose I could write some, but I'd be
>> sort of surprised if someone else hasn't already done that.  Then we
>> could throw in all the various avl / redblack / whatever map variants
>> in there and see how they stack up.
> I'm sure everyone has a benchmark floating around. I've attached the one
> I've been using.  As we all know from following the shootout rankings, a
> single benchmark is pointless and misleading. Better to have targeted
> benchmarks for specific use patterns. The problem is that search trees are
> used in so many ways. I've divided it up into two domains: inputs and
> queries. Then you get a single micro-benchmark by picking one thing in each
> domain. Here's what I've got
> Inputs :
>  - Random
>  - Random with duplicates
>  - Sequential
>  - The union of many small (100 or so) random sets
> Queries :
>  - Sum all keys (or values)
>  - Sum a random subset of keys (may or may not be present in the map)


> Yeah for that use-case I don't think you'll beat a good balanced binary
> tree, not in any language. A bit-trie won't really work because you could
> have duplicate entries (+/- 0) and they wouldn't be stored in sorted order.
> Scott

More information about the Libraries mailing list