Skip to content

Playground#3

Open
jerch wants to merge 8 commits intomasterfrom
playground
Open

Playground#3
jerch wants to merge 8 commits intomasterfrom
playground

Conversation

@jerch
Copy link
Copy Markdown
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