Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playground #3

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Playground #3

wants to merge 8 commits into from

Conversation

jerch
Copy link
Owner

@jerch jerch commented Jun 11, 2020

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 to Pipe in master: 45 MB/s vs. 750 MB/s in dummy write/read test

  • TTY 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:

    • rudimentary process control for free (kill and stop on ioctl)
    • isolation

    Downside:

    • worker isolation (no DOM access) - is that really an issue? For a cmdline tool?
    • much harder to setup a new process (needs worker startup, bootstrap of local env, ports to opened file descriptors etc, some sort of orchestrator/kernel like thingy)

jerch added 8 commits January 18, 2020 04:47
- several new much faster pipe impls with good old callback based
  being the fastest (~10 times faster than promise based)
- code restructuring started under /new
- more clib basics and some posix defs like PIPE_BUF
- stubbed new TTY (gonna be FasterPipe based)
- early throughput tests with worker threads
  (SAB with locks being ~50% faster than transferrables)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant