http://github.com/sw17ch/EnumMap/tree/master
Perhaps you could patch what I have? :) On Sun, Aug 9, 2009 at 12:08 AM, Thomas DuBuisson<[email protected]> wrote: > Inflating the number of elements in the test, I see: > > IntMap > inserts: 5.3 seconds > lookups: 2.0 seconds > > EnumMap > inserts: 6.1 sec (15% slower) > lookups: 2.5 sec (25% slower) > > EnumMap with SPECIALIZE of: > {-# SPECIALIZE join :: Prefix -> EnumMap Int a -> Prefix -> EnumMap > Int a -> EnumMap Int a #-} > {-# SPECIALIZE lookup :: Int -> EnumMap Int a -> Maybe a #-} > {-# SPECIALIZE lookupN :: Nat -> EnumMap Int a -> Maybe a #-} > {-# SPECIALIZE insert :: Int -> a -> EnumMap Int a -> EnumMap Int a #-} > inserts: 5.3 seconds (dead on) > lookups: 2.6 seconds (owch!) > > Additionally specializing the functions used in lookup{,N} doesn't > help. I tried inlining (via INLINE) a couple things but that only > made performance notably worse. > > > Thomas > > On Sat, Aug 8, 2009 at 8:29 PM, John Van Enk<[email protected]> wrote: >> How bad is the lookup compared to normal? >> >> On Sat, Aug 8, 2009 at 9:02 PM, Thomas >> DuBuisson<[email protected]> wrote: >>> On Sat, Aug 8, 2009 at 5:30 PM, Felipe Lessa<[email protected]> wrote: >>>> On Sat, Aug 08, 2009 at 04:14:15PM -0700, Thomas DuBuisson wrote: >>>>> There exists a small but measurable performance hit for at least one >>>>> test case (using Int as keys, obviously). Perhaps the bias would be >>>>> the other way if we were comparing EnumMap to an IntMap wrapped with >>>>> to/from Enum. >>>> >>>> Perhaps some SPECIALIZE pragmas would help here. >>>> >>> >>> Actually I tried that by adding SPECIALIZE to insert, insertN and >>> lookup. it seemed to make the insert benchmark competitive but not >>> lookup. >>> >>> Thomas >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> [email protected] >>> http://www.haskell.org/mailman/listinfo/haskell-cafe >>> >> > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
