Potential GSoC proposal: Reduce the speed gap between 'ghc -c' and 'ghc --make'

Simon Marlow marlowsd at gmail.com
Thu May 24 13:35:43 CEST 2012


On 23/05/12 21:11, Ryan Newton wrote:
> <the.dead.shall.rise at gmail.com
> <mailto:the.dead.shall.rise at gmail.com>> wrote:
>> Thanks. I'll look into how to optimise .hi loading by more
> traditional
>> means, then.
>
> Lennart is working on speeding up the binary package (which I
> believe is used to decode the .hi files.) His work might benefit this
> effort.
>
>
> Last time I tested it, mmap still offered better performance than
> fread on linux.  In addition to improving the deserialization code it
> would seem like a good idea to mmap the whole file at the outset as
> well.
>
> It seems like readBinMem is the relevant function (readIFace ->
> readBinIFace -> readBinMem), which occurs here:
>
> https://github.com/ghc/ghc/blob/08894f96407635781a233145435a78f144accab0/compiler/utils/Binary.hs#L222
>
>  Currently it does one big hGetBuf to read the file.  Since the
> interface files aren't changing dynamically, I think it's safe to
> just replace this code with an mmap.

I honestly don't think it will make much difference, because reading the
files is not the bottleneck, but we'll happily accept a patch.  Adding a
new package dependency just for this doesn't seem worthwhile though.

Cheers,
	Simon





More information about the Glasgow-haskell-users mailing list