[Haskell-cafe] ANN: unordered-containers - a new, faster hashing-based containers library
Johan Tibell
johan.tibell at gmail.com
Wed Feb 23 17:03:51 CET 2011
Thanks for the examples. Point 3 is interesting but most of the gain
there could probably be had by telling the user to use (bigmap `union`
smallmap). My guess is that the user has a good idea which argument is
larger/smaller.
On Wed, Feb 23, 2011 at 12:45 AM, Max Bolingbroke
<batterseapower at hotmail.com> wrote:
> Personally I don't find any of these *particularly* compelling. But a
> ~6% slowdown for this functionality is not too bad - have you had a
> chance to look at the core to see if the cause of the slowdown
> manifests itself at that level? Perhaps it is possible to tweak the
> code to make this cheaper.
I did look at the core for
test :: HashMap Int Int -> HashMap Int Int
test hm = insert 42 12 hm
And I didn't see anything that looked particularly bad. The core uses
unboxed values everywhere possible and the recursive function (i.e.
inserts) returns an unboxed pair (# Int#, Tree k v #). The code for
O(1) size i here:
https://github.com/tibbe/unordered-containers/commit/77bc43acad2eb6b29472cd6ea21c3efb677cae0d
> Also, what was the size of the collections you used in your benchmark?
> I would expect the relative cost of maintaining the size to get lower
> as you increased the size of the collection.
I tried with 2^12.
Johan
More information about the Haskell-Cafe
mailing list