Re: man page rendering speed (was: Playground pager lsp(1))

Ralph Corderoy
2023-04-08T11:34:28Z

Hi Branden,

> You're referring to cat pages. As far as I know, these are on their
> way out if not already gone.

catman must die. It was never a good solution to the problem. As well
as ignoring different TERMs, it also didn't handle a user's variations
to a terminal's definition. I'm glad to see Colin is open to the idea,
though accept it's initial and on-going work for him.

> On my system, all groff man pages but one render in between a tenth and
> a fortieth of a second.

Colin made the point I was going to make: how long must my eyeballs wait
to be pleasured?

$ strace -ttt -fe read,write -o /tmp/st man ffmpeg-all
$ cat /tmp/st
→ 19788 1680952657.119429 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \0\0\0\0\0\0"..., 832) = 832
...
19801 1680952658.350823 write(1, "FFMPEG-ALL(1) "..., 1023 <unfinished ...>
19801 1680952658.352054 <... write resumed>) = 1023
19801 1680952658.353074 write(1, "ified by a plain output url.\33[m\n"..., 1023 <unfinished ...>
19801 1680952658.353357 <... write resumed>) = 1023
19801 1680952658.354272 write(1, "e command line multiple times. E"..., 1023) = 1023
19801 1680952658.357171 write(1, "aw input files.\33[m\n\33[m\n\33[1mDETAI"..., 1009) = 1009
19801 1680952658.357478 read(0, "--- | encoded data | <----+\n "..., 4096) = 4096
19801 1680952658.358752 write(1, " | output | <-----"..., 1023) = 1023
19801 1680952658.359556 write(1, "peg\33[0m can process raw audio an"..., 574) = 574
→ 19801 1680952658.359735 read(3, <unfinished ...>
...
19801 1680952662.323859 <... read resumed>"q", 1) = 1
...
$

1680952658.359735 - 1680952657.119429 = 1.240306

strace adds a bit of overhead.

$ PAGER=true time -p man ffmpeg-all
real 0.99
user 1.07
sys 0.15
$

Hard to find a slower CPU.

$ grep name /proc/cpuinfo | uniq -c
4 model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz

--
Cheers, Ralph.