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

http: refactor to use more primordials #36194

Merged
merged 1 commit into from
Dec 29, 2020
Merged

Conversation

aduh95
Copy link
Contributor

@aduh95 aduh95 commented Nov 20, 2020

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines

@nodejs-github-bot nodejs-github-bot added the lib / src Issues and PRs related to general changes in the lib or src directory. label Nov 20, 2020
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/http
  • @nodejs/net

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. labels Nov 20, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Nov 20, 2020
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Nov 20, 2020

@rickyes rickyes added http Issues or PRs related to the http subsystem. and removed lib / src Issues and PRs related to general changes in the lib or src directory. labels Nov 22, 2020
@Trott
Copy link
Member

Trott commented Nov 22, 2020

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/701/ (queued, will 404 until it starts)

@aduh95 aduh95 removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Nov 22, 2020
@aduh95
Copy link
Contributor Author

aduh95 commented Nov 23, 2020

The benchmark CI didn't kick off. I'd say we should wait for #36221 to land, and then run the benchmark to see how it will actually perform.

@aduh95 aduh95 added the blocked PRs that are blocked by other issues or PRs. label Nov 23, 2020
@aduh95
Copy link
Contributor Author

aduh95 commented Nov 25, 2020

@mscdex
Copy link
Contributor

mscdex commented Nov 25, 2020

Be very selective (explicitly set benchmark parameters) when running http benchmarks, otherwise they will take way too long to finish because of the fixed duration of a single run and because many of the http benchmarks contain a fair number of parameters and parameter values (all multiplied by x number of runs).

@Trott
Copy link
Member

Trott commented Nov 26, 2020

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/701/ (queued, will 404 until it starts)

Whoops, I goofed and typed "http" in the wrong place in the parameters so the benchmark didn't run.... As @mscdex notes, we're not going to want to run all the benchmarks anyway. (Or maybe we are, but then be prepared to be patient, and maybe get the Build WG to let two benchmarks run at once so that it doesn't block all other benchmarks while it's running for days.)

@aduh95
Copy link
Contributor Author

aduh95 commented Dec 28, 2020

The benchmark CIs didn't show any significant regression, I'm marking this as author ready, and I plan to land this tomorrow.
For some reason, the http/simple.js benchmark was hanging for several hours in the CI, I've add to abort it every time to not block the CI for other PRs. There might be a bug somewhere with this benchmark and/or the CI parameters.

                                                                                                   confidence improvement accuracy (*)    (**)   (***)
 http/bench-parser.js n=100000 len=16                                                                             -0.80 %       ±5.17%  ±6.95%  ±9.20%
 http/bench-parser.js n=100000 len=32                                                                             -0.36 %       ±4.27%  ±5.71%  ±7.49%
 http/bench-parser.js n=100000 len=4                                                                               0.20 %       ±2.72%  ±3.63%  ±4.73%
 http/bench-parser.js n=100000 len=8                                                                              -2.38 %       ±4.88%  ±6.55%  ±8.66%
 http/check_invalid_header_char.js n=1000000 input=''                                                              3.64 %       ±4.01%  ±5.34%  ±6.96%
 http/check_invalid_header_char.js n=1000000 input='\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tFoo bar baz'                    -0.37 %       ±3.73%  ±4.97%  ±6.48%
 http/check_invalid_header_char.js n=1000000 input='\\x7F'                                                        -2.02 %       ±3.45%  ±4.59%  ±5.98%
 http/check_invalid_header_char.js n=1000000 input='1'                                                             2.66 %       ±4.42%  ±5.88%  ±7.66%
 http/check_invalid_header_char.js n=1000000 input='20091'                                                         0.52 %       ±3.76%  ±5.00%  ±6.51%
 http/check_invalid_header_char.js n=1000000 input='close'                                                         0.68 %       ±3.50%  ±4.66%  ±6.08%
 http/check_invalid_header_char.js n=1000000 input='en-US'                                                        -2.51 %       ±2.82%  ±3.75%  ±4.88%
 http/check_invalid_header_char.js n=1000000 input='foo\\nbar'                                                     0.35 %       ±3.97%  ±5.28%  ±6.87%
 http/check_invalid_header_char.js n=1000000 input='group_acmeair'                                                 2.87 %       ±3.53%  ±4.70%  ±6.12%
 http/check_invalid_header_char.js n=1000000 input='gzip'                                                         -2.68 %       ±4.16%  ±5.56%  ±7.30%
 http/check_invalid_header_char.js n=1000000 input='keep-alive'                                                   -2.47 %       ±3.28%  ±4.37%  ±5.69%
 http/check_invalid_header_char.js n=1000000 input='LONG_AND_INVALID'                                              0.78 %       ±1.63%  ±2.17%  ±2.82%
 http/check_invalid_header_char.js n=1000000 input='private'                                                       0.72 %       ±4.81%  ±6.40%  ±8.32%
 http/check_invalid_header_char.js n=1000000 input='SAMEORIGIN'                                                   -2.51 %       ±4.52%  ±6.02%  ±7.83%
 http/check_invalid_header_char.js n=1000000 input='Sat, 07 May 2016 16:54:48 GMT'                                -1.20 %       ±2.67%  ±3.56%  ±4.63%
 http/check_invalid_header_char.js n=1000000 input='text/html; charset=utf-8'                                     -2.47 %       ±3.31%  ±4.41%  ±5.75%
 http/check_invalid_header_char.js n=1000000 input='text/plain'                                                   -2.41 %       ±3.59%  ±4.80%  ±6.28%
 http/check_invalid_header_char.js n=1000000 input='中文呢'                                                        3.52 %       ±5.45%  ±7.26%  ±9.45%
 http/check_is_http_token.js n=1000000 key=':'                                                                    -4.07 %       ±4.10%  ±5.46%  ±7.14%
 http/check_is_http_token.js n=1000000 key=':alternate-protocol'                                                   2.16 %       ±4.08%  ±5.44%  ±7.08%
 http/check_is_http_token.js n=1000000 key='((((())))'                                                            -2.43 %       ±4.93%  ±6.58%  ±8.62%
 http/check_is_http_token.js n=1000000 key='@@'                                                                   -4.78 %       ±5.04%  ±6.71%  ±8.75%
 http/check_is_http_token.js n=1000000 key='Accept-Ranges'                                                  *     -3.31 %       ±3.28%  ±4.37%  ±5.71%
 http/check_is_http_token.js n=1000000 key='alt-svc'                                                              -0.77 %       ±5.09%  ±6.77%  ±8.82%
 http/check_is_http_token.js n=1000000 key='alternate-protocol:'                                                  -2.09 %       ±3.40%  ±4.53%  ±5.90%
 http/check_is_http_token.js n=1000000 key='alternate-protocol'                                                   -0.45 %       ±3.58%  ±4.77%  ±6.21%
 http/check_is_http_token.js n=1000000 key='Cache-Control'                                                         0.93 %       ±3.82%  ±5.09%  ±6.64%
 http/check_is_http_token.js n=1000000 key='Connection'                                                            0.78 %       ±2.90%  ±3.87%  ±5.04%
 http/check_is_http_token.js n=1000000 key='Content-Encoding'                                                     -0.10 %       ±4.09%  ±5.44%  ±7.09%
 http/check_is_http_token.js n=1000000 key='content-length'                                                        0.90 %       ±3.09%  ±4.11%  ±5.35%
 http/check_is_http_token.js n=1000000 key='Content-Location'                                                     -2.43 %       ±3.52%  ±4.69%  ±6.12%
 http/check_is_http_token.js n=1000000 key='content-type'                                                          0.62 %       ±3.99%  ±5.31%  ±6.92%
 http/check_is_http_token.js n=1000000 key='Content-Type'                                                         -1.97 %       ±3.75%  ±5.01%  ±6.55%
 http/check_is_http_token.js n=1000000 key='date'                                                                 -2.65 %       ±3.30%  ±4.40%  ±5.74%
 http/check_is_http_token.js n=1000000 key='ETag'                                                                  0.42 %       ±3.53%  ±4.70%  ±6.11%
 http/check_is_http_token.js n=1000000 key='Expires'                                                               0.31 %       ±4.69%  ±6.25%  ±8.16%
 http/check_is_http_token.js n=1000000 key='Keep-Alive'                                                            1.40 %       ±3.53%  ±4.70%  ±6.12%
 http/check_is_http_token.js n=1000000 key='Last-Modified'                                                        -0.36 %       ±4.07%  ±5.42%  ±7.06%
 http/check_is_http_token.js n=1000000 key='location'                                                             -0.42 %       ±3.87%  ±5.16%  ±6.71%
 http/check_is_http_token.js n=1000000 key='server'                                                                0.08 %       ±4.25%  ±5.66%  ±7.37%
 http/check_is_http_token.js n=1000000 key='Server'                                                               -0.40 %       ±3.80%  ±5.06%  ±6.59%
 http/check_is_http_token.js n=1000000 key='status'                                                                0.71 %       ±3.42%  ±4.56%  ±5.93%
 http/check_is_http_token.js n=1000000 key='TCN'                                                                   1.65 %       ±3.47%  ±4.63%  ±6.04%
 http/check_is_http_token.js n=1000000 key='Transfer-Encoding'                                                    -1.15 %       ±3.84%  ±5.11%  ±6.66%
 http/check_is_http_token.js n=1000000 key='Vary'                                                                  2.70 %       ±4.98%  ±6.64%  ±8.67%
 http/check_is_http_token.js n=1000000 key='version'                                                              -1.33 %       ±3.80%  ±5.06%  ±6.58%
 http/check_is_http_token.js n=1000000 key='x-frame-options'                                                      -0.02 %       ±3.53%  ±4.70%  ±6.13%
 http/check_is_http_token.js n=1000000 key='x-xss-protection'                                                     -0.44 %       ±3.61%  ±4.80%  ±6.26%
 http/check_is_http_token.js n=1000000 key='中文呢'                                                               -0.38 %       ±5.85%  ±7.78% ±10.13%
 http/chunked.js duration=5 c=100 len=1 n=1 benchmarker='wrk'                                                     -0.01 %       ±0.10%  ±0.13%  ±0.17%
 http/chunked.js duration=5 c=100 len=1 n=16 benchmarker='wrk'                                                    -0.39 %       ±0.65%  ±0.86%  ±1.13%
 http/chunked.js duration=5 c=100 len=1 n=4 benchmarker='wrk'                                                     -0.05 %       ±0.19%  ±0.25%  ±0.32%
 http/chunked.js duration=5 c=100 len=1 n=8 benchmarker='wrk'                                                     -0.02 %       ±0.22%  ±0.30%  ±0.39%
 http/chunked.js duration=5 c=100 len=256 n=1 benchmarker='wrk'                                                    0.03 %       ±0.11%  ±0.15%  ±0.20%
 http/chunked.js duration=5 c=100 len=256 n=16 benchmarker='wrk'                                                  -0.12 %       ±1.04%  ±1.38%  ±1.81%
 http/chunked.js duration=5 c=100 len=256 n=4 benchmarker='wrk'                                                   -0.02 %       ±0.16%  ±0.22%  ±0.28%
 http/chunked.js duration=5 c=100 len=256 n=8 benchmarker='wrk'                                                   -0.05 %       ±0.26%  ±0.34%  ±0.44%
 http/chunked.js duration=5 c=100 len=64 n=1 benchmarker='wrk'                                                    -0.09 %       ±0.11%  ±0.15%  ±0.20%
 http/chunked.js duration=5 c=100 len=64 n=16 benchmarker='wrk'                                                   -0.27 %       ±0.80%  ±1.06%  ±1.38%
 http/chunked.js duration=5 c=100 len=64 n=4 benchmarker='wrk'                                                    -0.03 %       ±0.16%  ±0.22%  ±0.28%
 http/chunked.js duration=5 c=100 len=64 n=8 benchmarker='wrk'                                                     0.12 %       ±0.23%  ±0.31%  ±0.41%
 http/client-request-body.js method='end' len=1024 type='asc' dur=5                                               -5.73 %       ±7.78% ±10.35% ±13.47%
 http/client-request-body.js method='end' len=1024 type='buf' dur=5                                               -0.64 %       ±9.24% ±12.29% ±16.00%
 http/client-request-body.js method='end' len=1024 type='utf' dur=5                                               -0.17 %       ±8.27% ±11.01% ±14.35%
 http/client-request-body.js method='end' len=256 type='asc' dur=5                                                -0.39 %       ±9.31% ±12.39% ±16.14%
 http/client-request-body.js method='end' len=256 type='buf' dur=5                                                -3.67 %      ±10.64% ±14.16% ±18.43%
 http/client-request-body.js method='end' len=256 type='utf' dur=5                                                -1.92 %       ±9.02% ±12.01% ±15.63%
 http/client-request-body.js method='end' len=32 type='asc' dur=5                                                  8.06 %       ±9.16% ±12.18% ±15.86%
 http/client-request-body.js method='end' len=32 type='buf' dur=5                                                 -6.80 %       ±8.61% ±11.45% ±14.91%
 http/client-request-body.js method='end' len=32 type='utf' dur=5                                                 -3.84 %       ±9.26% ±12.32% ±16.04%
 http/client-request-body.js method='write' len=1024 type='asc' dur=5                                              3.75 %       ±8.85% ±11.78% ±15.33%
 http/client-request-body.js method='write' len=1024 type='buf' dur=5                                             -3.37 %       ±8.63% ±11.49% ±14.97%
 http/client-request-body.js method='write' len=1024 type='utf' dur=5                                              0.34 %       ±8.67% ±11.53% ±15.01%
 http/client-request-body.js method='write' len=256 type='asc' dur=5                                               3.52 %       ±9.79% ±13.02% ±16.95%
 http/client-request-body.js method='write' len=256 type='buf' dur=5                                              -2.70 %       ±9.81% ±13.06% ±17.00%
 http/client-request-body.js method='write' len=256 type='utf' dur=5                                               6.57 %       ±9.30% ±12.37% ±16.11%
 http/client-request-body.js method='write' len=32 type='asc' dur=5                                                2.90 %       ±8.93% ±11.88% ±15.46%
 http/client-request-body.js method='write' len=32 type='buf' dur=5                                               -6.35 %       ±8.11% ±10.80% ±14.07%
 http/client-request-body.js method='write' len=32 type='utf' dur=5                                                5.36 %       ±9.97% ±13.27% ±17.28%
 http/cluster.js duration=5 c=50 len=1024 type='buffer' benchmarker='wrk'                                         -3.38 %       ±4.48%  ±5.94%  ±7.69%
 http/cluster.js duration=5 c=50 len=1024 type='bytes' benchmarker='wrk'                                          -2.24 %       ±4.18%  ±5.54%  ±7.16%
 http/cluster.js duration=5 c=50 len=102400 type='buffer' benchmarker='wrk'                                       -0.83 %       ±3.13%  ±4.15%  ±5.37%
 http/cluster.js duration=5 c=50 len=102400 type='bytes' benchmarker='wrk'                                        -1.19 %       ±3.22%  ±4.27%  ±5.53%
 http/cluster.js duration=5 c=50 len=4 type='buffer' benchmarker='wrk'                                      *     -4.28 %       ±4.00%  ±5.30%  ±6.86%
 http/cluster.js duration=5 c=50 len=4 type='bytes' benchmarker='wrk'                                      **     -6.37 %       ±4.60%  ±6.10%  ±7.89%
 http/cluster.js duration=5 c=500 len=1024 type='buffer' benchmarker='wrk'                                  *     -2.52 %       ±2.46%  ±3.27%  ±4.24%
 http/cluster.js duration=5 c=500 len=1024 type='bytes' benchmarker='wrk'                                         -1.79 %       ±2.46%  ±3.26%  ±4.23%
 http/cluster.js duration=5 c=500 len=102400 type='buffer' benchmarker='wrk'                                      -0.80 %       ±2.45%  ±3.25%  ±4.21%
 http/cluster.js duration=5 c=500 len=102400 type='bytes' benchmarker='wrk'                                       -2.96 %       ±3.11%  ±4.12%  ±5.34%
 http/cluster.js duration=5 c=500 len=4 type='buffer' benchmarker='wrk'                                            0.12 %       ±2.44%  ±3.24%  ±4.19%
 http/cluster.js duration=5 c=500 len=4 type='bytes' benchmarker='wrk'                                            -1.49 %       ±2.36%  ±3.13%  ±4.06%
 http/create-clientrequest.js e=1 arg='options' url='idn'                                                          7.43 %      ±11.59% ±15.65% ±20.81%
 http/create-clientrequest.js e=1 arg='options' url='long'                                                         2.27 %      ±10.66% ±14.46% ±19.39%
 http/create-clientrequest.js e=1 arg='options' url='wpt'                                                         10.96 %      ±16.28% ±22.17% ±29.90%
 http/create-clientrequest.js e=1 arg='string' url='idn'                                                           0.25 %       ±8.43% ±11.37% ±15.13%
 http/create-clientrequest.js e=1 arg='string' url='long'                                                         -4.00 %      ±10.76% ±14.51% ±19.30%
 http/create-clientrequest.js e=1 arg='string' url='wpt'                                                           2.06 %       ±5.18%  ±6.99%  ±9.29%
 http/create-clientrequest.js e=1 arg='URL' url='idn'                                                              1.40 %       ±8.05% ±10.86% ±14.46%
 http/create-clientrequest.js e=1 arg='URL' url='long'                                                             3.65 %       ±9.16% ±12.39% ±16.54%
 http/create-clientrequest.js e=1 arg='URL' url='wpt'                                                              5.31 %       ±9.41% ±12.70% ±16.89%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='asc' benchmarker='wrk'                   1.01 %       ±3.63%  ±4.90%  ±6.53%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='buf' benchmarker='wrk'                  -5.52 %      ±11.69% ±15.78% ±20.98%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='utf' benchmarker='wrk'                  -0.24 %       ±2.14%  ±2.89%  ±3.84%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='asc' benchmarker='wrk'                   -2.00 %       ±5.23%  ±7.06%  ±9.40%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='buf' benchmarker='wrk'                   -3.27 %       ±5.41%  ±7.30%  ±9.71%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='utf' benchmarker='wrk'                    0.88 %       ±1.85%  ±2.50%  ±3.32%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='asc' benchmarker='wrk'                    0.23 %       ±2.52%  ±3.41%  ±4.57%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='buf' benchmarker='wrk'                   -0.44 %       ±6.95%  ±9.39% ±12.52%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='utf' benchmarker='wrk'                    1.30 %       ±2.38%  ±3.22%  ±4.29%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='asc' benchmarker='wrk'                    -1.55 %       ±3.58%  ±4.84%  ±6.44%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='buf' benchmarker='wrk'             **     -4.37 %       ±2.94%  ±3.97%  ±5.29%
 http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='utf' benchmarker='wrk'                    -1.75 %       ±2.25%  ±3.06%  ±4.12%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='asc' benchmarker='wrk'                -1.43 %       ±9.01% ±12.15% ±16.15%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='buf' benchmarker='wrk'                 3.87 %      ±13.34% ±18.00% ±23.94%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='utf' benchmarker='wrk'                 6.53 %       ±9.06% ±12.25% ±16.33%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='asc' benchmarker='wrk'                 -2.83 %       ±4.84%  ±6.54%  ±8.70%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='buf' benchmarker='wrk'                  0.64 %       ±3.81%  ±5.15%  ±6.86%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='utf' benchmarker='wrk'                 -5.93 %       ±7.09%  ±9.64% ±12.97%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='asc' benchmarker='wrk'                  0.33 %       ±7.05%  ±9.51% ±12.65%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='buf' benchmarker='wrk'                 -2.56 %       ±8.48% ±11.44% ±15.21%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='utf' benchmarker='wrk'                 -3.10 %       ±7.14%  ±9.63% ±12.81%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='asc' benchmarker='wrk'                   0.49 %       ±3.65%  ±4.92%  ±6.54%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='buf' benchmarker='wrk'                  -1.01 %       ±3.34%  ±4.51%  ±5.99%
 http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='utf' benchmarker='wrk'                  -1.95 %       ±3.82%  ±5.16%  ±6.87%
 http/headers.js duration=5 len=1 n=10 benchmarker='wrk'                                                           1.60 %       ±7.09%  ±9.56% ±12.72%
 http/headers.js duration=5 len=1 n=1000 benchmarker='wrk'                                                         1.48 %       ±3.95%  ±5.34%  ±7.10%
 http/headers.js duration=5 len=100 n=10 benchmarker='wrk'                                                        -2.46 %       ±6.24%  ±8.46% ±11.33%
 http/headers.js duration=5 len=100 n=1000 benchmarker='wrk'                                                       1.79 %       ±5.47%  ±7.38%  ±9.81%
 http/http_server_for_chunky_client.js type='send' n=2000 len=1                                                    4.66 %       ±5.85%  ±7.91% ±10.56%
 http/http_server_for_chunky_client.js type='send' n=2000 len=128                                                  0.83 %       ±9.58% ±12.93% ±17.20%
 http/http_server_for_chunky_client.js type='send' n=2000 len=16                                                   0.36 %      ±12.94% ±17.47% ±23.25%
 http/http_server_for_chunky_client.js type='send' n=2000 len=32                                                  -4.32 %      ±11.41% ±15.40% ±20.48%
 http/http_server_for_chunky_client.js type='send' n=2000 len=4                                                   -2.33 %      ±14.96% ±20.19% ±26.85%
 http/http_server_for_chunky_client.js type='send' n=2000 len=64                                                  -2.30 %      ±11.21% ±15.13% ±20.12%
 http/http_server_for_chunky_client.js type='send' n=2000 len=8                                                    2.07 %      ±14.60% ±19.69% ±26.19%
 http/http_server_for_chunky_client.js type='send' n=5 len=1                                                       0.57 %       ±7.59% ±10.33% ±13.93%
 http/http_server_for_chunky_client.js type='send' n=5 len=128                                                     5.09 %       ±9.17% ±12.40% ±16.54%
 http/http_server_for_chunky_client.js type='send' n=5 len=16                                                      0.15 %      ±15.11% ±20.57% ±27.75%
 http/http_server_for_chunky_client.js type='send' n=5 len=32                                               *      8.02 %       ±7.95% ±10.81% ±14.56%
 http/http_server_for_chunky_client.js type='send' n=5 len=4                                                       4.09 %      ±10.69% ±14.64% ±19.93%
 http/http_server_for_chunky_client.js type='send' n=5 len=64                                                      0.95 %       ±6.11%  ±8.25% ±10.98%
 http/http_server_for_chunky_client.js type='send' n=5 len=8                                                       1.69 %       ±8.86% ±11.96% ±15.91%
 http/http_server_for_chunky_client.js type='send' n=50 len=1                                                     -2.66 %       ±7.95% ±10.73% ±14.29%
 http/http_server_for_chunky_client.js type='send' n=50 len=128                                                    4.24 %       ±8.43% ±11.37% ±15.12%
 http/http_server_for_chunky_client.js type='send' n=50 len=16                                                     2.73 %       ±9.41% ±12.74% ±17.01%
 http/http_server_for_chunky_client.js type='send' n=50 len=32                                                    -2.86 %       ±8.48% ±11.47% ±15.32%
 http/http_server_for_chunky_client.js type='send' n=50 len=4                                                     -0.33 %      ±11.71% ±15.84% ±21.17%
 http/http_server_for_chunky_client.js type='send' n=50 len=64                                                     0.16 %      ±12.71% ±17.26% ±23.17%
 http/http_server_for_chunky_client.js type='send' n=50 len=8                                                     -0.24 %       ±9.86% ±13.31% ±17.71%
 http/http_server_for_chunky_client.js type='send' n=500 len=1                                                     0.63 %       ±5.36%  ±7.24%  ±9.62%
 http/http_server_for_chunky_client.js type='send' n=500 len=128                                                  -5.12 %      ±10.70% ±14.47% ±19.32%
 http/http_server_for_chunky_client.js type='send' n=500 len=16                                             *      8.72 %       ±6.70%  ±9.05% ±12.03%
 http/http_server_for_chunky_client.js type='send' n=500 len=32                                                   -1.35 %      ±10.66% ±14.45% ±19.36%
 http/http_server_for_chunky_client.js type='send' n=500 len=4                                                     1.69 %       ±8.95% ±12.11% ±16.16%
 http/http_server_for_chunky_client.js type='send' n=500 len=64                                                   -3.36 %       ±7.51% ±10.13% ±13.48%
 http/http_server_for_chunky_client.js type='send' n=500 len=8                                                     0.40 %       ±8.03% ±10.83% ±14.41%
 http/incoming_headers.js duration=5 w=0 headers=20 connections=50 benchmarker='wrk'                              -0.07 %       ±8.46% ±11.41% ±15.17%
 http/incoming_headers.js duration=5 w=6 headers=20 connections=50 benchmarker='wrk'                              -5.94 %       ±5.95%  ±8.03% ±10.67%
 http/set_header.js n=1000000 value='Connection'                                                                   0.01 %       ±2.40%  ±3.24%  ±4.31%
 http/set_header.js n=1000000 value='Content-Length'                                                              -1.37 %       ±1.59%  ±2.14%  ±2.85%
 http/set_header.js n=1000000 value='Content-Type'                                                                -0.89 %       ±2.09%  ±2.82%  ±3.75%
 http/set_header.js n=1000000 value='Set-Cookie'                                                                  -0.29 %       ±2.13%  ±2.87%  ±3.82%
 http/set_header.js n=1000000 value='Transfer-Encoding'                                                    **     -2.18 %       ±1.57%  ±2.12%  ±2.82%
 http/set_header.js n=1000000 value='Vary'                                                                        -1.71 %       ±2.02%  ±2.72%  ±3.63%
 http/set_header.js n=1000000 value='X-Powered-By'                                                                -1.58 %       ±2.33%  ±3.15%  ±4.19%
 http/set-header.js duration=5 res='normal' benchmarker='wrk'                                               *     -6.59 %       ±6.35%  ±8.58% ±11.44%
 http/set-header.js duration=5 res='setHeader' benchmarker='wrk'                                                  -3.75 %       ±5.56%  ±7.51%  ±9.98%
 http/set-header.js duration=5 res='setHeaderWH' benchmarker='wrk'                                                 0.83 %       ±4.66%  ±6.29%  ±8.37%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=1024 type='buffer' benchmarker='wrk'                    -2.15 %       ±6.49%  ±9.32% ±13.73%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=1024 type='bytes' benchmarker='wrk'                      0.85 %       ±7.59% ±10.92% ±16.11%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=102400 type='buffer' benchmarker='wrk'                   9.37 %      ±11.49% ±16.98% ±26.21%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=102400 type='bytes' benchmarker='wrk'                   -4.55 %       ±5.71%  ±8.26% ±12.32%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=4 type='buffer' benchmarker='wrk'                        1.62 %      ±10.72% ±16.09% ±25.47%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=4 type='bytes' benchmarker='wrk'                        -2.31 %      ±12.52% ±17.49% ±24.56%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=1024 type='buffer' benchmarker='wrk'                     1.72 %      ±14.60% ±25.05% ±49.61%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=1024 type='bytes' benchmarker='wrk'                     -0.95 %      ±12.28% ±18.95% ±31.43%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=102400 type='buffer' benchmarker='wrk'                  -5.68 %       ±8.47% ±12.40% ±18.81%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=102400 type='bytes' benchmarker='wrk'                    2.01 %       ±7.82% ±11.84% ±19.02%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=4 type='buffer' benchmarker='wrk'                 *    -10.72 %       ±7.53% ±10.83% ±15.98%
 http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=4 type='bytes' benchmarker='wrk'                        -3.73 %       ±7.06%  ±9.92% ±14.08%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=1024 type='buffer' benchmarker='wrk'                    5.80 %      ±10.71% ±16.39% ±26.79%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=1024 type='bytes' benchmarker='wrk'                    -2.44 %       ±7.62% ±11.01% ±16.32%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=102400 type='buffer' benchmarker='wrk'                  5.65 %       ±8.97% ±13.23% ±20.32%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=102400 type='bytes' benchmarker='wrk'                  -3.31 %       ±4.79%  ±6.76%  ±9.66%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=4 type='buffer' benchmarker='wrk'                      -4.86 %       ±9.78% ±14.10% ±20.85%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=4 type='bytes' benchmarker='wrk'                       -0.00 %       ±9.10% ±12.73% ±17.95%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=1024 type='buffer' benchmarker='wrk'                   -4.25 %       ±9.19% ±13.40% ±20.17%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=1024 type='bytes' benchmarker='wrk'                     2.13 %      ±15.70% ±23.11% ±35.39%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=102400 type='buffer' benchmarker='wrk'                  6.96 %      ±20.30% ±37.18% ±82.00%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=102400 type='bytes' benchmarker='wrk'                  -0.12 %      ±12.12% ±17.38% ±25.48%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=4 type='buffer' benchmarker='wrk'                      -8.79 %       ±8.84% ±12.70% ±18.68%
 http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=4 type='bytes' benchmarker='wrk'                       -2.21 %       ±9.42% ±13.15% ±18.45%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=1024 type='buffer' benchmarker='wrk'                     8.09 %      ±10.81% ±15.59% ±23.05%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=1024 type='bytes' benchmarker='wrk'                     -8.46 %       ±8.51% ±11.87% ±16.63%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=102400 type='buffer' benchmarker='wrk'                   4.00 %       ±8.14% ±11.89% ±17.98%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=102400 type='bytes' benchmarker='wrk'                    2.50 %       ±6.42%  ±9.61% ±15.16%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=4 type='buffer' benchmarker='wrk'                       -1.44 %       ±5.89%  ±8.58% ±12.92%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=4 type='bytes' benchmarker='wrk'                         2.91 %       ±9.56% ±13.45% ±19.11%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=1024 type='buffer' benchmarker='wrk'                    -3.53 %      ±13.75% ±23.91% ±48.37%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=1024 type='bytes' benchmarker='wrk'                      6.98 %       ±9.64% ±13.71% ±19.82%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=102400 type='buffer' benchmarker='wrk'                  -1.33 %      ±10.62% ±19.00% ±40.32%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=102400 type='bytes' benchmarker='wrk'                   -2.72 %       ±6.71% ±10.11% ±16.09%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=4 type='buffer' benchmarker='wrk'                       -7.02 %       ±8.23% ±11.86% ±17.55%
 http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=4 type='bytes' benchmarker='wrk'                        -1.74 %       ±7.81% ±10.89% ±15.28%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=1024 type='buffer' benchmarker='wrk'                   -7.60 %      ±21.43% ±36.84% ±73.16%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=1024 type='bytes' benchmarker='wrk'                     6.71 %       ±8.39% ±11.88% ±17.05%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=102400 type='buffer' benchmarker='wrk'                 -4.17 %      ±17.84% ±33.14% ±74.79%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=102400 type='bytes' benchmarker='wrk'                   1.25 %       ±7.20% ±10.18% ±14.59%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=4 type='buffer' benchmarker='wrk'                      -4.41 %       ±9.77% ±14.51% ±22.53%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=4 type='bytes' benchmarker='wrk'                        1.44 %       ±6.32%  ±8.82% ±12.38%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=1024 type='buffer' benchmarker='wrk'                   -5.70 %      ±12.46% ±19.59% ±33.51%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=1024 type='bytes' benchmarker='wrk'                    -4.48 %       ±5.95%  ±8.41% ±12.04%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=102400 type='buffer' benchmarker='wrk'                  5.90 %      ±15.59% ±26.75% ±52.96%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=102400 type='bytes' benchmarker='wrk'                  -1.64 %       ±6.88%  ±9.71% ±13.89%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=4 type='buffer' benchmarker='wrk'                      -0.03 %       ±9.04% ±13.08% ±19.48%
 http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=4 type='bytes' benchmarker='wrk'                        0.28 %       ±4.93%  ±6.90%  ±9.73%
 http/upgrade.js n=1000                                                                                           -3.43 %       ±6.29%  ±8.38% ±10.91%
 http/upgrade.js n=5                                                                                              -2.12 %       ±2.86%  ±3.80%  ±4.96%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case there are 222 comparisons, you can thus
expect the following amount of false-positive results:
  11.10 false positives, when considering a   5% risk acceptance (*, **, ***),
  2.22 false positives, when considering a   1% risk acceptance (**, ***),
  0.22 false positives, when considering a 0.1% risk acceptance (***)

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. and removed blocked PRs that are blocked by other issues or PRs. labels Dec 28, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 28, 2020
@nodejs-github-bot
Copy link
Collaborator

PR-URL: nodejs#36194
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@aduh95
Copy link
Contributor Author

aduh95 commented Dec 29, 2020

Landed in 8cf5ae0

@aduh95 aduh95 merged commit 8cf5ae0 into nodejs:master Dec 29, 2020
@aduh95 aduh95 deleted the http-primordials branch December 29, 2020 15:07
@MylesBorins
Copy link
Contributor

hey @aduh95, this PR does not land cleanly on v15.x. Would you be able to backport?

aduh95 added a commit to aduh95/node that referenced this pull request Jan 5, 2021
PR-URL: nodejs#36194
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
danielleadams pushed a commit that referenced this pull request Jan 12, 2021
PR-URL: #36194
Backport-PR-URL: #36803
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
@danielleadams danielleadams mentioned this pull request Jan 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. http Issues or PRs related to the http subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants