Skip to content

Commit

Permalink
http2: refactor outgoing write mechanism
Browse files Browse the repository at this point in the history
- Only finish outgoing `WriteWrap`s once data has actually been
  passed to the underlying socket.
  - This makes HTTP2 streams respect backpressure
- Use `DoTryWrite` as a shortcut for sending out as much of
  the data synchronously without blocking as possible
- Use `NGHTTP2_DATA_FLAG_NO_COPY` to avoid copying DATA frame
  contents into nghttp2’s buffers before sending them out.

    $ ./node benchmark/compare.js --new ./node --old ./node-before --runs 10 --filter write --set streams=20 --set length=1024 --set size=16 http2 | Rscript benchmark/compare.R
    [00:02:30|% 100| 1/1 files | 20/20 runs | 1/1 configs]: Done
                                                                         improvement confidence      p.value
     http2/write.js benchmarker="h2load" size=16 length=1024 streams=20      6.88 %        *** 2.261566e-08
  • Loading branch information
addaleax committed Dec 18, 2017
1 parent beb929a commit 548cacf
Show file tree
Hide file tree
Showing 2 changed files with 232 additions and 115 deletions.
Loading

0 comments on commit 548cacf

Please sign in to comment.