5 ms·
(OP here) I do say it's not that big of a deal in the end: it almost always is OK and at the end you optimize the inner loops by looking at profiles; like in a
by luispedrocoelho 9y ago
(OP here)
I do say it's not that big of a deal in the end: it almost always is OK and at the end you optimize the inner loops by looking at profiles; like in any other project.
But when using GHC, I have indeed sometimes ran into situations where I expect something to be fast when it is not (e.g., `ByteString.map (+ value)` is incredibly slow compared to a pseudo-C loop).
I also did find a bona fides performance bug in GHC https://ghc.haskell.org/trac/ghc/ticket/11783 https://ghc.haskell.org/trac/ghc/ticket/11783
- arnon 9y agoGHC isn't magical. It has bugs too. We had an issue with the Data.Text package and OverloadedStrings in 7.10.2 which caused extremely slow compilation times and filed a bug report for that, which was solved for 7.10.3.
- codygman 9y ago> (e.g., `ByteString.map (+ value)` is incredibly slow compared to a pseudo-C loop). That situation sounds like you needed a ByteString Builder to get comparable performance.
- luispedrocoelho 9y agoMaybe, but pseudo-C actually worked very well. I even have some "real C" in my Haskell code to handle some inner loop stuff.