[commit: packages/base] master: Switch IO manager to a mutable hashtable (239bc1d)

git at git.haskell.org git at git.haskell.org
Wed Sep 4 00:23:07 CEST 2013


Repository : ssh://git@git.haskell.org/base

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/239bc1dda6bc6799382736538af75a2f01686503/base

>---------------------------------------------------------------

commit 239bc1dda6bc6799382736538af75a2f01686503
Author: Bryan O'Sullivan <bos at serpentine.com>
Date:   Wed Aug 14 03:43:36 2013 -0700

    Switch IO manager to a mutable hashtable
    
    This data structure (IntTable) provides a similar API to its predecessor
    (IntMap), at half the number of lines in size.
    
    When tested in isolation using criterion, IntTable is much faster than
    IntMap: over 15x, according to my criterion benchmarks.
    
    This translates into a measurable improvement when used in the IO manager:
    using weighttp to benchmark acme-http under various configurations on two
    32-core Linux servers connected by a 10gbE network, I see between a 3%
    and 10% increase in requests served per second compared to IntMap.
    
    Signed-off-by: Andreas Voellmy <andreas.voellmy at gmail.com>


>---------------------------------------------------------------

239bc1dda6bc6799382736538af75a2f01686503
 GHC/Event/Arr.hs      |   32 +++++
 GHC/Event/IntMap.hs   |  347 -------------------------------------------------
 GHC/Event/IntTable.hs |  141 ++++++++++++++++++++
 GHC/Event/Manager.hs  |  131 +++++++++----------
 GHC/Event/Thread.hs   |   14 +-
 base.cabal            |    3 +-
 6 files changed, 243 insertions(+), 425 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 239bc1dda6bc6799382736538af75a2f01686503




More information about the ghc-commits mailing list