Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Playground branch to get crucial layout decisions straight.
Possible directions:
Pipe impl: event loop (setTimout) < promises < callbacks with queueMicrotask, speed gain is like 1:2:10
FasterPipe
with agressive memory sharing (less copying, less ctx switches) - total speed gain compared toPipe
in master: 45 MB/s vs. 750 MB/s in dummy write/read testTTY will be binary only too internally, but prolly can pull proper unicode and width handling from xterm.js - this should make it possible to get ERASE/WERASE correctly handled (currently not even possible in FreeBSD or Linux)
early tests with worker threads - the tests show that an SAB with read/locks is the fastest for data piping, and only ~30% slower than a single threaded pipe. This looks promising, maybe we should do the new process logic based on workers.
Proside:
Downside: