[Haskell-cafe] cost of modules

Jeremy Shaw jeremy.shaw at linspireinc.com
Tue Mar 27 17:54:20 EDT 2007


At Tue, 27 Mar 2007 23:10:21 +0200,
Fawzi Mohamed wrote:

> If someone has an idea on how else I can improve timings please tell me.

I believe you are seeing a speed decrease, because GHC is not inlining
functions as much when you split them into modules. If you add
explicit inline statements, I think you should be able to get back to
your original timings.

Below is an example of how to add INLINE statements.

someFunction :: (Word8 -> Maybe Word8 -> Bool) -> B.ByteString -> B.ByteString
someFunction = ...
{-# INLINE someFunction #-}

I am not sure what the downsides are. It probably makes the resulting
binary bigger, and takes longer to compile. Though, probably not any
worse than if you just put everything in one module?

It might be the case that you only need to INLINE one or two functions
to get most of the speed back.

j.


More information about the Haskell-Cafe mailing list