When I rendered a video, tee used 100% while the other process was basically at 0, for more than 50% of the rendering time. I ran it multiply times to verify that is was correct. An alternative solution would be to use sockets, but that would require changes to the shell. Optimising tee seems like the sensible alternative. Besides, normally when you use tools like tee and cat, you expect it to finish within milliseconds, even for larger files, here we are talking about time intervals between seconds and a few hours, with most if not all CPU:s at 90% to 100%, so optimisations do not hurt, especially not when as significant as using tee and splice. It may be unfortunate to have to use both tee–splice and read–write (which is required both for platforms not supporting tee and splice, and for file types not supporting them), but considering how little complexity this adds, — it's not much more than a duplication of a function, — I think it is a trade-off worth considering.
________________________________________ From: isabella parakiss [[email protected]] Sent: 12 December 2017 10:58 To: hackers mail list Subject: Re: [hackers] [blind] update todo: tee is too slow || Mattias Andrée bullshit On 12/4/17, [email protected] <[email protected]> wrote: > commit d8aa45da86d1128149fd7ab6ac3725bf8e88a1b1 > Author: Mattias Andrée <[email protected]> > AuthorDate: Mon Dec 4 22:35:59 2017 +0100 > Commit: Mattias Andrée <[email protected]> > CommitDate: Mon Dec 4 22:35:59 2017 +0100 > > update todo: tee is too slow > > Signed-off-by: Mattias Andrée <[email protected]> > > diff --git a/TODO b/TODO > index b0bbde7..408e942 100644 > --- a/TODO > +++ b/TODO > @@ -1,3 +1,7 @@ > +blind-tee (and tee(1)) is too slow (bottleneck) and must be reimplemented > +using tee(2) and splice(2). cat(1) may also be too slow, if this is the > +case, add blind-splice that just copies stdin to stdout using splice(2). > + > blind-transform affine transformation by matrix multiplication, > -[xy] for > tiling, -s for > improve quality on downscaling (pixels' > neighbours must not change) > blind-apply-map remap pixels (distortion) using the X and Y > values, -[xy] > for tiling, -s for > >
