<div dir="ltr">The AOSP build doesn't use tr (or anything that's still in pending), but<br>the kernel folks have been more aggressive. They found that tr's<br>pathological flushing was adding minutes to their build times.<br><br>Just removing the fflush() made tr significantly faster for my trivial<br>test, but still slow, with all the time going into stdio. Rewriting the<br>loop to modify toybuf in place and then do one write per read made most<br>of the difference, but special-casing the "neither -d nor -s" case made<br>a measurable difference too on a Xeon.<br><br>Bug: <a href="http://b/174773617">http://b/174773617</a><br>---<br> tests/tr.test     | 11 +++++++++++<br> toys/pending/tr.c | 27 +++++++++++----------------<br> 2 files changed, 22 insertions(+), 16 deletions(-)<br> create mode 100755 tests/tr.test<br></div>