http://qs321.pair.com?node_id=122451


in reply to Slurp or Read

A note on performance:

If you trace the system call activity that happens underneath slurp, at least on Linux and FreeBSD, you'll find that the slurp gets divided into a sequence of read(1) calls. If your intent it raw speed (and the file can fit into memory), you might be better off using sysread(), which will do a single read(1). That removes system call overhead, which on a loaded system will help avoid having other processes get their read(1)/write(1) requests in, which might move the disk head off of the sector that contains your partially-read file. Seeks can be very expensive.

At this level, though, the game is probabilistic. The file might be fragmented, etc.