Repository : ssh://g...@git.haskell.org/bytestring On branch : ghc-head Link : http://git.haskell.org/packages/bytestring.git/commitdiff/8279acae79e45b0cdb9a154c1a2fbb78ab4480d3
>--------------------------------------------------------------- commit 8279acae79e45b0cdb9a154c1a2fbb78ab4480d3 Author: Duncan Coutts <dun...@community.haskell.org> Date: Sat Oct 5 20:06:38 2013 +0100 Fix documentation of memory overheads >--------------------------------------------------------------- 8279acae79e45b0cdb9a154c1a2fbb78ab4480d3 Data/ByteString/Short.hs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Data/ByteString/Short.hs b/Data/ByteString/Short.hs index 02ac0be..4248417 100644 --- a/Data/ByteString/Short.hs +++ b/Data/ByteString/Short.hs @@ -36,16 +36,16 @@ module Data.ByteString.Short ( -- | With GHC, the memory overheads are as follows, expressed in words and -- in bytes (words are 4 and 8 bytes on 32 or 64bit machines respectively). -- - -- * 'ByteString' unshared: 7 words; 28 or 56 bytes. + -- * 'ByteString' unshared: 9 words; 36 or 72 bytes. -- -- * 'ByteString' shared substring: 5 words; 20 or 40 bytes. -- - -- * 'ShortByteString': 3 words; 12 or 24 bytes. + -- * 'ShortByteString': 4 words; 16 or 32 bytes. -- -- For the string data itself, both 'ShortByteString' and 'ByteString' use -- one byte per element, rounded up to the nearest word. For example, -- including the overheads, a length 10 'ShortByteString' would take - -- @12 + 12 = 24@ bytes on a 32bit platform and @24 + 16 = 40@ bytes on a + -- @16 + 12 = 28@ bytes on a 32bit platform and @32 + 16 = 48@ bytes on a -- 64bit platform. -- -- These overheads can all be reduced by 1 word (4 or 8 bytes) when the @@ -53,11 +53,12 @@ module Data.ByteString.Short ( -- -- For example: -- - -- > data ThingyId = ThingyId {-# UNPACK #-} !Int - -- > {-# UNPACK #-} !ShortByteString + -- > data ThingId = ThingId {-# UNPACK #-} !Int + -- > {-# UNPACK #-} !ShortByteString -- - -- This will take @1 + 1 + 2@ words (the constructor + unpacked @Int@ + - -- unpacked @ShortByteString@), plus the words for the string data. + -- This will take @1 + 1 + 3@ words (the @ThingId@ constructor + + -- unpacked @Int@ + unpacked @ShortByteString@), plus the words for the + -- string data. -- ** Heap fragmentation -- | With GHC, the 'ByteString' representation uses /pinned/ memory, _______________________________________________ ghc-commits mailing list ghc-commits@haskell.org http://www.haskell.org/mailman/listinfo/ghc-commits