An application I use quite often requires me to reverse the lines in the
file to get the desired output.

'tail -r' appears to be very inefficient in it's use of mmap(). It mmap's
the entire file in, which encourages the kernel to swap out the rest of the
system to keep pages of the input file in memory.

58350 root      54   0   412M 85244K RUN      0:14 19.78% 19.19% tail

Out of 128M of ram, it's swapped nearly everything else out to keep 85M of
this 400M file in ram, even though it will never touch it again. :)

I see two possible fixes for this. One could be madvise'ing periodically
with MADV_DONTNEED. If I understand correctly, this would help a bit, right?

Or, mmap smaller regions of the file, and keep moving the buffer. This would
also help with files exceeding mmap's limits.


Any thoughts?


Kevin


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to