3 ms·
oooh, can we talk about the broken BSD utils on OS X next? $ du -hs big.log 199M big.log $ cat big.log | time tr 'a' 'b' | md5 27.22 real
by justinsaccount 11y ago
oooh, can we talk about the broken BSD utils on OS X next?
$ du -hs big.log
199M big.log
$ cat big.log | time tr 'a' 'b' | md5
27.22 real 23.70 user 0.43 sys
c171314106134f6fde035b11f4354464
$ cat big.log | time gtr 'a' 'b' | md5
1.05 real 0.30 user 0.23 sys
c171314106134f6fde035b11f4354464
- pixelbeat 11y agoYes GNU spends a lot of time improving performance. A couple of examples from the most recent release, which you might think were too simple to optimize significantly: The yes command (which is generally useful for generating repetitive text): $ yes-old | pv > /dev/null ^C ... 55.8MiB/s ... $ yes-new | pv > /dev/null ^C ... 3.44GiB/s ... Details on that fairly simple change are at http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=35217221 http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h... Also we more than doubled the speed of wc -l (by avoiding function call overhead): $ yes | pv | wc-old -l ^C ... 230MiB/s ... $ yes | pv | wc-new -l ^C ... 558MiB/s ... Also we now generate an infinite stream of integers more efficiently too: $ seq-old inf | pv > /dev/null ^C ... 13.3MiB/s ... $ seq-new inf | pv > /dev/null ^C ... 497MiB/s ...
- justinsaccount 11y agoNice!