Page MenuHomeFreeBSD

grep: remove unconditional fflush(stdout) from grep_printline
Needs ReviewPublic

Authored by bapt on Wed, Jun 10, 2:55 PM.
Tags
None
Referenced Files
F159445067: D57529.id.diff
Sun, Jun 14, 5:21 AM
Unknown Object (File)
Sat, Jun 13, 7:47 AM
Unknown Object (File)
Thu, Jun 11, 4:48 AM
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