From owner-freebsd-hackers Wed Jul 28 8:27:44 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from houston.matchlogic.com (houston.matchlogic.com [205.216.147.127]) by hub.freebsd.org (Postfix) with ESMTP id A1E2B15480 for ; Wed, 28 Jul 1999 08:27:37 -0700 (PDT) (envelope-from crandall@matchlogic.com) Received: by houston.matchlogic.com with Internet Mail Service (5.5.2448.0) id ; Wed, 28 Jul 1999 09:27:34 -0600 Message-ID: <64003B21ECCAD11185C500805F31EC030378660F@houston.matchlogic.com> From: Charles Randall To: hackers@freebsd.org Cc: Kevin Day Subject: RE: Replace/rewrite reverse.c for tail(1) Date: Wed, 28 Jul 1999 09:27:28 -0600 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2448.0) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I'd suggest that you use "tac" from GNU textutils. Charles -----Original Message----- From: Kevin Day [mailto:toasty@dragondata.com] Sent: Wednesday, July 28, 1999 3:09 AM To: hackers@freebsd.org Subject: Replace/rewrite reverse.c for tail(1) 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 majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message