[web-devel] new field for Network.HTTP.Types.Status

Kazu Yamamoto ( 山本和彦 ) kazu at iij.ad.jp
Wed Aug 29 07:21:59 CEST 2012


Hello,

> I believe unboxing is not possible for ByteString, but it is for the Int
> field. I don't really know how much performance gains this brings, not really
> a Haskell performance guru.

I tried this:

data Status
    = Status {
        statusCode      :: {-# UNPACK #-} !Int
      , statusAsciiCode :: {-# UNPACK #-} !B.ByteString
      , statusMessage   :: {-# UNPACK #-} !B.ByteString
      }
    deriving (Show)

Since ByteString has just one constructor, UNPACK for ByteString
should work according to GHC manual.

This results in 41345.3 req/s while no bangs and no UNPACK results in
43098.6.

So, let's not add bangs and UNPACKs. Please merge the current pull
request. Thanks in advance.

--Kazu



More information about the web-devel mailing list