[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