[darcs-users] darcs patch: fpstring.c: switch a memchr for memrchr
David Roundy
droundy at darcs.net
Tue Apr 29 12:22:11 UTC 2008
On Mon, Apr 28, 2008 at 10:50 PM, Gwern Branwen <gwern0 at gmail.com> wrote:
> > I think this is a reasonable option. Why not look (as I think Jason
> > suggested) in min(4k,len) of the contents? I think 4k is quite a resonable
> > cutoff, as it's probably at or under a page on all architectures, which
> > means that most likely it takes no extra IO to read 4k instead of less. Of
> > course, this only helps for folks with files larger than 4k, but that
> > solves problems like your 8g file that is disk-access-dominated.
>
> OK. I've actually done things a little differently than your suggestion, since I discovered that apparently 'min' isn't any sort of built-in or standard C function. I noticed that the call stack looked like A -> B -> C -> D and E. Since D :: PackedString -> Bool, I just plopped in a 'takePS 4096'.
For cases of big files, another good option would be to add a function
readFromFile :: String -> Int -> IO PackedString
which just reads the first Int bytes of the file. This could be more
efficient than the simple implementation, which would be:
readFromFile f n = takePS n `fmap` readFile f
David
More information about the darcs-users
mailing list