On 23/05/12 21:11, Ryan Newton wrote:
<the.dead.shall.r...@gmail.com
<mailto:the.dead.shall.r...@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



_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to