Page MenuHomeFreeBSD

grep: remove unconditional fflush(stdout) from grep_printline
AbandonedPublic

Authored by bapt on Wed, Jun 10, 2:55 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jul 3, 12:55 PM
Unknown Object (File)
Fri, Jul 3, 3:20 AM
Unknown Object (File)
Fri, Jun 26, 5:54 AM
Unknown Object (File)
Sun, Jun 21, 8:18 AM
Unknown Object (File)
Thu, Jun 18, 11:28 PM
Unknown Object (File)
Wed, Jun 17, 10:01 PM
Unknown Object (File)
Wed, Jun 17, 4:37 PM
Unknown Object (File)
Wed, Jun 17, 1:06 PM
Subscribers

Details

Reviewers
kevans
Summary

grep_printline() was flushing stdout after every output line,
causing one write(2) syscall per line. Remove this and let
stdio(3) buffer output normally. --line-buffered continues
to work via setlinebuf(3).

Benchmark on 1M lines (25MB output to file):

real time:  -65.3%  (2.17s -> 0.75s)
sys time:   -99.9%  (1.45s -> 0.00s)

--line-buffered: no significant difference.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 73807
Build 70690: arc lint + arc unit