On Fri, Jan 14, 2011 at 5:54 PM, Evan Laforge <qdunkan@gmail.com> wrote:
Then I found out that
compiling with profiling enabled makes attoparsec slow and parsec
fast.
Yes, the SCC annotations added by GHC have a fairly high cost.
I think my short term solution is going to be remove -auto-all from
attoparsec's cabal---I'm not profiling attoparsec and so I don't want
my entire profile output to be internal attoparsec functions. But
presumably the flag was added there for a reason, so maybe there are
people who really want that.
Yes - me :-)
I typically turn on profiling for most of my libraries while I think of them as "under development", a period of indefinite length that comes to an end when I deem the performance good enough. None of my libraries has actually hit that point yet :-)
This isn't completely without basis. For instance, I made some big speed improvements to attoparsec's very performance-sensitive takeWhile function just the other day, thanks to -auto-all.
I might, though, see if there's a way I could enable that flag only for myself (in a way that I wouldn't routinely forget).