[commit: packages/bytestring] ghc-head: Port performance patches from private bytestring branch (25708d3)
git at git.haskell.org
git
Fri Oct 4 08:27:47 UTC 2013
Repository : ssh://git at git.haskell.org/bytestring
On branch : ghc-head
Link : http://git.haskell.org/packages/bytestring.git/commitdiff/25708d3a4a8a410795f42b97c9a4e73c04751c1a
>---------------------------------------------------------------
commit 25708d3a4a8a410795f42b97c9a4e73c04751c1a
Author: Simon Meier <simon.meier at erudify.com>
Date: Sat Aug 31 09:15:00 2013 +0200
Port performance patches from private bytestring branch
- simplify chunk insertion (strict bytestrings instead of
lazy-byestring-continuations)
- bytestring chunk insertion is half as fast as on blaze-builder. This
performance loss can be attributed completely to the change from using
'inlinePerformIO' to using 'unsafePerformIO' in the conversion from builders
to lazy bytestrings. This slowdown can be circumvented by executing
buildersin the IO monad, where no unsafePerformIO is necessary.
- rewrite some of the primitive builders to a non-recursive form to avoid
unnecessary closure allocation on the fast path
>---------------------------------------------------------------
25708d3a4a8a410795f42b97c9a4e73c04751c1a
Data/ByteString/Builder/Extra.hs | 52 ++-
Data/ByteString/Builder/Internal.hs | 682 +++++++++++++++++++++++------------
Data/ByteString/Builder/Prim.hs | 76 ++--
bench/BenchAll.hs | 52 ++-
4 files changed, 546 insertions(+), 316 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 25708d3a4a8a410795f42b97c9a4e73c04751c1a
More information about the ghc-commits
mailing list