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

[Fizz] Pipeable Stream Perf #24291

Merged
merged 3 commits into from
Apr 11, 2022
Merged

[Fizz] Pipeable Stream Perf #24291

merged 3 commits into from
Apr 11, 2022

Commits on Apr 8, 2022

  1. Configuration menu
    Copy the full SHA
    6ad3494 View commit details
    Browse the repository at this point in the history
  2. Implement buffering in pipeable streams

    The previous implementation of pipeable streaming (Node) suffered some performance issues brought about by the high chunk counts and innefficiencies with how node streams handle this situation. In particular the use of cork/uncork was meant to alleviate this but these methods do not do anything unless the receiving Writable Stream implements _writev which many won't.
    
    This change adopts the view based buffering techniques previously implemented for the Browser execution context. The main difference is the use of backpressure provided by the writable stream which is not implementable in the other context. Another change to note is the use of standards constructs like TextEncoder and TypedArrays.
    gnoff committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    9374e5e View commit details
    Browse the repository at this point in the history
  3. Implement encodeInto during flushCompletedQueues

    encodeInto allows us to write directly to the view buffer that will end up getting streamed instead of encoding into an intermediate buffer and then copying that data.
    gnoff committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    4fd4f93 View commit details
    Browse the repository at this point in the history