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: add __proto__ null #48662

Closed
wants to merge 4 commits into from
Closed

Conversation

rluvaton
Copy link
Member

@rluvaton rluvaton commented Jul 5, 2023

extracted from:

TODO:

  • Run CITGM
  • mark as a major change

reference: #48646 (comment)

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/http
  • @nodejs/net

@nodejs-github-bot nodejs-github-bot added lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Jul 5, 2023
@lpinca
Copy link
Member

lpinca commented Jul 5, 2023

Did you run any benchmark?

@rluvaton
Copy link
Member Author

rluvaton commented Jul 5, 2023

Did you run any benchmark?

nope, can you trigger the benchmarks? (there is a CI for that, no? as running on my local machine is not representative)

I also wanna know how much did I break the eco system, can you run the CITGM for me please

@lpinca
Copy link
Member

lpinca commented Jul 5, 2023

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seem this is significantly decreasing performance across the board, so maybe there are a few problems.

@lpinca
Copy link
Member

lpinca commented Jul 6, 2023

                                                                                                  confidence improvement accuracy (*)    (**)   (***)
http/bench-parser.js n=100000 len=16                                                                              2.02 %       ±3.81%  ±5.07%  ±6.59%
http/bench-parser.js n=100000 len=32                                                                             -0.63 %       ±2.22%  ±2.95%  ±3.84%
http/bench-parser.js n=100000 len=4                                                                              -1.76 %       ±4.45%  ±5.93%  ±7.72%
http/bench-parser.js n=100000 len=8                                                                              -2.69 %       ±5.03%  ±6.71%  ±8.75%
http/check_invalid_header_char.js n=1000000 input=''                                                              0.81 %       ±5.18%  ±6.90%  ±8.98%
http/check_invalid_header_char.js n=1000000 input='\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tFoo bar baz'                     5.52 %       ±9.89% ±13.17% ±17.16%
http/check_invalid_header_char.js n=1000000 input='\\x7F'                                                        -1.62 %       ±9.84% ±13.09% ±17.04%
http/check_invalid_header_char.js n=1000000 input='1'                                                             2.25 %       ±6.95%  ±9.26% ±12.07%
http/check_invalid_header_char.js n=1000000 input='20091'                                                         0.72 %       ±6.85%  ±9.11% ±11.86%
http/check_invalid_header_char.js n=1000000 input='close'                                                         1.00 %       ±8.34% ±11.09% ±14.44%
http/check_invalid_header_char.js n=1000000 input='en-US'                                                  *     -9.14 %       ±7.55% ±10.11% ±13.29%
http/check_invalid_header_char.js n=1000000 input='foo\\nbar'                                                    -4.39 %       ±8.86% ±11.80% ±15.37%
http/check_invalid_header_char.js n=1000000 input='group_acmeair'                                                 0.01 %       ±9.99% ±13.29% ±17.29%
http/check_invalid_header_char.js n=1000000 input='gzip'                                                          0.91 %       ±7.91% ±10.52% ±13.70%
http/check_invalid_header_char.js n=1000000 input='keep-alive'                                                    2.20 %       ±6.93%  ±9.22% ±12.00%
http/check_invalid_header_char.js n=1000000 input='LONG_AND_INVALID'                                             -1.94 %       ±8.05% ±10.71% ±13.95%
http/check_invalid_header_char.js n=1000000 input='private'                                                      -0.35 %       ±7.89% ±10.50% ±13.66%
http/check_invalid_header_char.js n=1000000 input='SAMEORIGIN'                                                   -7.99 %       ±9.28% ±12.37% ±16.12%
http/check_invalid_header_char.js n=1000000 input='Sat, 07 May 2016 16:54:48 GMT'                                -2.90 %       ±7.97% ±10.62% ±13.84%
http/check_invalid_header_char.js n=1000000 input='text/html; charset=utf-8'                                     -3.17 %       ±3.74%  ±5.01%  ±6.58%
http/check_invalid_header_char.js n=1000000 input='text/plain'                                                   -0.44 %       ±9.46% ±12.58% ±16.38%
http/check_invalid_header_char.js n=1000000 input='中文呢'                                                 *     10.29 %       ±9.75% ±12.99% ±16.97%
http/check_is_http_token.js n=1000000 key=':'                                                                    -0.05 %      ±10.72% ±14.26% ±18.56%
http/check_is_http_token.js n=1000000 key=':alternate-protocol'                                                  -6.37 %       ±9.72% ±12.94% ±16.84%
http/check_is_http_token.js n=1000000 key='((((())))'                                                            -5.98 %       ±9.81% ±13.05% ±16.99%
http/check_is_http_token.js n=1000000 key='@@'                                                             *     -9.25 %       ±8.44% ±11.23% ±14.63%
http/check_is_http_token.js n=1000000 key='Accept-Ranges'                                                         2.41 %      ±10.75% ±14.30% ±18.62%
http/check_is_http_token.js n=1000000 key='alt-svc'                                                       **    -15.36 %       ±9.18% ±12.23% ±15.94%
http/check_is_http_token.js n=1000000 key='alternate-protocol:'                                                   2.97 %      ±11.78% ±15.67% ±20.40%
http/check_is_http_token.js n=1000000 key='alternate-protocol'                                                    0.33 %       ±8.77% ±11.66% ±15.18%
http/check_is_http_token.js n=1000000 key='Cache-Control'                                                        -7.57 %       ±9.80% ±13.04% ±16.97%
http/check_is_http_token.js n=1000000 key='Connection'                                                           -4.38 %      ±10.46% ±13.92% ±18.12%
http/check_is_http_token.js n=1000000 key='Content-Encoding'                                                      6.64 %      ±10.58% ±14.08% ±18.32%
http/check_is_http_token.js n=1000000 key='content-length'                                                        7.51 %      ±10.59% ±14.10% ±18.35%
http/check_is_http_token.js n=1000000 key='Content-Location'                                                      0.85 %       ±9.66% ±12.85% ±16.73%
http/check_is_http_token.js n=1000000 key='content-type'                                                         -6.69 %      ±10.38% ±13.81% ±17.98%
http/check_is_http_token.js n=1000000 key='Content-Type'                                                          3.81 %      ±10.90% ±14.50% ±18.87%
http/check_is_http_token.js n=1000000 key='date'                                                                  4.00 %       ±8.37% ±11.14% ±14.52%
http/check_is_http_token.js n=1000000 key='ETag'                                                           *      8.35 %       ±7.08%  ±9.55% ±12.67%
http/check_is_http_token.js n=1000000 key='Expires'                                                               4.64 %      ±10.88% ±14.47% ±18.84%
http/check_is_http_token.js n=1000000 key='Keep-Alive'                                                           10.16 %      ±11.01% ±14.65% ±19.07%
http/check_is_http_token.js n=1000000 key='Last-Modified'                                                         6.82 %      ±11.31% ±15.04% ±19.58%
http/check_is_http_token.js n=1000000 key='location'                                                       *     11.80 %      ±10.43% ±13.89% ±18.11%
http/check_is_http_token.js n=1000000 key='server'                                                                4.48 %      ±10.19% ±13.56% ±17.65%
http/check_is_http_token.js n=1000000 key='Server'                                                               -0.27 %       ±9.15% ±12.18% ±15.85%
http/check_is_http_token.js n=1000000 key='status'                                                                8.10 %      ±10.87% ±14.47% ±18.84%
http/check_is_http_token.js n=1000000 key='TCN'                                                                   5.51 %       ±8.08% ±10.77% ±14.06%
http/check_is_http_token.js n=1000000 key='Transfer-Encoding'                                                     3.98 %       ±9.54% ±12.69% ±16.52%
http/check_is_http_token.js n=1000000 key='Vary'                                                                 -3.02 %       ±6.23%  ±8.32% ±10.89%
http/check_is_http_token.js n=1000000 key='version'                                                              -6.53 %      ±10.00% ±13.31% ±17.33%
http/check_is_http_token.js n=1000000 key='x-frame-options'                                                      -6.81 %       ±9.64% ±12.83% ±16.70%
http/check_is_http_token.js n=1000000 key='x-xss-protection'                                                     -0.53 %       ±9.47% ±12.60% ±16.40%
http/check_is_http_token.js n=1000000 key='中文呢'                                                                0.62 %      ±10.19% ±13.56% ±17.65%
http/chunked.js duration=5 c=100 len=1 n=1 benchmarker='wrk'                                             ***    -11.36 %       ±4.49%  ±5.98%  ±7.78%
http/chunked.js duration=5 c=100 len=1 n=16 benchmarker='wrk'                                                    -0.54 %       ±2.55%  ±3.40%  ±4.42%
http/chunked.js duration=5 c=100 len=1 n=4 benchmarker='wrk'                                                      0.11 %       ±1.55%  ±2.06%  ±2.69%
http/chunked.js duration=5 c=100 len=1 n=8 benchmarker='wrk'                                                     -0.58 %       ±2.15%  ±2.87%  ±3.73%
http/chunked.js duration=5 c=100 len=256 n=1 benchmarker='wrk'                                           ***    -11.86 %       ±4.29%  ±5.72%  ±7.45%
http/chunked.js duration=5 c=100 len=256 n=16 benchmarker='wrk'                                                  -1.64 %       ±1.94%  ±2.58%  ±3.36%
http/chunked.js duration=5 c=100 len=256 n=4 benchmarker='wrk'                                                   -0.98 %       ±1.15%  ±1.54%  ±2.01%
http/chunked.js duration=5 c=100 len=256 n=8 benchmarker='wrk'                                                   -0.06 %       ±1.96%  ±2.61%  ±3.40%
http/chunked.js duration=5 c=100 len=64 n=1 benchmarker='wrk'                                             **     -7.36 %       ±4.35%  ±5.79%  ±7.54%
http/chunked.js duration=5 c=100 len=64 n=16 benchmarker='wrk'                                                    0.37 %       ±2.04%  ±2.72%  ±3.54%
http/chunked.js duration=5 c=100 len=64 n=4 benchmarker='wrk'                                              *     -1.72 %       ±1.48%  ±1.98%  ±2.57%
http/chunked.js duration=5 c=100 len=64 n=8 benchmarker='wrk'                                                     0.83 %       ±1.95%  ±2.60%  ±3.38%
http/client-request-body.js method='end' len=1024 type='asc' dur=5                                       ***     -7.06 %       ±1.98%  ±2.63%  ±3.42%
http/client-request-body.js method='end' len=1024 type='buf' dur=5                                       ***     -7.97 %       ±2.08%  ±2.77%  ±3.62%
http/client-request-body.js method='end' len=1024 type='utf' dur=5                                       ***     -7.22 %       ±1.89%  ±2.52%  ±3.28%
http/client-request-body.js method='end' len=256 type='asc' dur=5                                        ***     -6.10 %       ±1.93%  ±2.56%  ±3.34%
http/client-request-body.js method='end' len=256 type='buf' dur=5                                        ***     -7.76 %       ±1.86%  ±2.47%  ±3.22%
http/client-request-body.js method='end' len=256 type='utf' dur=5                                        ***     -7.94 %       ±1.82%  ±2.43%  ±3.16%
http/client-request-body.js method='end' len=32 type='asc' dur=5                                         ***     -8.19 %       ±2.00%  ±2.66%  ±3.47%
http/client-request-body.js method='end' len=32 type='buf' dur=5                                         ***     -8.76 %       ±2.12%  ±2.83%  ±3.68%
http/client-request-body.js method='end' len=32 type='utf' dur=5                                         ***     -8.59 %       ±2.16%  ±2.88%  ±3.74%
http/client-request-body.js method='write' len=1024 type='asc' dur=5                                     ***     -7.70 %       ±1.66%  ±2.21%  ±2.88%
http/client-request-body.js method='write' len=1024 type='buf' dur=5                                     ***     -8.88 %       ±2.04%  ±2.71%  ±3.53%
http/client-request-body.js method='write' len=1024 type='utf' dur=5                                     ***     -7.36 %       ±1.69%  ±2.25%  ±2.93%
http/client-request-body.js method='write' len=256 type='asc' dur=5                                      ***     -6.69 %       ±1.66%  ±2.21%  ±2.89%
http/client-request-body.js method='write' len=256 type='buf' dur=5                                      ***     -7.46 %       ±1.63%  ±2.17%  ±2.83%
http/client-request-body.js method='write' len=256 type='utf' dur=5                                      ***     -7.01 %       ±2.02%  ±2.69%  ±3.50%
http/client-request-body.js method='write' len=32 type='asc' dur=5                                       ***     -7.21 %       ±2.09%  ±2.78%  ±3.62%
http/client-request-body.js method='write' len=32 type='buf' dur=5                                       ***     -6.86 %       ±1.89%  ±2.52%  ±3.28%
http/client-request-body.js method='write' len=32 type='utf' dur=5                                       ***     -5.89 %       ±2.06%  ±2.74%  ±3.57%
http/cluster.js duration=5 c=50 len=1024 type='buffer' benchmarker='wrk'                                 ***     -6.74 %       ±2.26%  ±3.01%  ±3.93%
http/cluster.js duration=5 c=50 len=1024 type='bytes' benchmarker='wrk'                                  ***     -7.95 %       ±1.85%  ±2.47%  ±3.22%
http/cluster.js duration=5 c=50 len=102400 type='buffer' benchmarker='wrk'                                       -2.67 %       ±3.31%  ±4.41%  ±5.74%
http/cluster.js duration=5 c=50 len=102400 type='bytes' benchmarker='wrk'                                ***     -4.14 %       ±1.15%  ±1.53%  ±1.99%
http/cluster.js duration=5 c=50 len=4 type='buffer' benchmarker='wrk'                                    ***     -7.64 %       ±2.35%  ±3.12%  ±4.07%
http/cluster.js duration=5 c=50 len=4 type='bytes' benchmarker='wrk'                                     ***     -6.69 %       ±2.20%  ±2.92%  ±3.80%
http/cluster.js duration=5 c=500 len=1024 type='buffer' benchmarker='wrk'                                ***     -5.88 %       ±2.71%  ±3.61%  ±4.71%
http/cluster.js duration=5 c=500 len=1024 type='bytes' benchmarker='wrk'                                 ***     -6.72 %       ±2.14%  ±2.85%  ±3.72%
http/cluster.js duration=5 c=500 len=102400 type='buffer' benchmarker='wrk'                              ***     -3.58 %       ±1.49%  ±1.98%  ±2.59%
http/cluster.js duration=5 c=500 len=102400 type='bytes' benchmarker='wrk'                               ***     -2.81 %       ±1.20%  ±1.60%  ±2.08%
http/cluster.js duration=5 c=500 len=4 type='buffer' benchmarker='wrk'                                   ***     -8.14 %       ±2.69%  ±3.58%  ±4.67%
http/cluster.js duration=5 c=500 len=4 type='bytes' benchmarker='wrk'                                    ***     -7.84 %       ±2.61%  ±3.47%  ±4.53%
http/create-clientrequest.js e=1 arg='options' url='idn'                                                         -1.34 %       ±2.75%  ±3.70%  ±4.88%
http/create-clientrequest.js e=1 arg='options' url='long'                                                ***     -4.60 %       ±2.20%  ±2.95%  ±3.88%
http/create-clientrequest.js e=1 arg='options' url='wpt'                                                  **     -5.74 %       ±4.01%  ±5.35%  ±6.99%
http/create-clientrequest.js e=1 arg='string' url='idn'                                                          -0.55 %       ±2.19%  ±2.92%  ±3.81%
http/create-clientrequest.js e=1 arg='string' url='long'                                                         -0.95 %       ±2.97%  ±3.98%  ±5.22%
http/create-clientrequest.js e=1 arg='string' url='wpt'                                                           1.28 %       ±2.35%  ±3.12%  ±4.06%
http/create-clientrequest.js e=1 arg='URL' url='idn'                                                      **      2.77 %       ±1.62%  ±2.15%  ±2.80%
http/create-clientrequest.js e=1 arg='URL' url='long'                                                            -0.66 %       ±1.64%  ±2.19%  ±2.85%
http/create-clientrequest.js e=1 arg='URL' url='wpt'                                                              1.40 %       ±3.48%  ±4.63%  ±6.03%
http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='asc' benchmarker='wrk'                  -0.73 %       ±1.32%  ±1.76%  ±2.30%
http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='buf' benchmarker='wrk'                  -0.37 %       ±1.22%  ±1.62%  ±2.11%
http/end-vs-write-end.js duration=5 method='end' c=100 len=1048576 type='utf' benchmarker='wrk'                  -0.60 %       ±0.73%  ±0.98%  ±1.27%
http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='asc' benchmarker='wrk'                   -0.65 %       ±0.90%  ±1.19%  ±1.56%
http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='buf' benchmarker='wrk'                   -1.87 %       ±1.92%  ±2.56%  ±3.35%
http/end-vs-write-end.js duration=5 method='end' c=100 len=131072 type='utf' benchmarker='wrk'             *     -1.31 %       ±1.26%  ±1.68%  ±2.18%
http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='asc' benchmarker='wrk'                   -0.60 %       ±1.21%  ±1.62%  ±2.10%
http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='buf' benchmarker='wrk'            **     -1.75 %       ±1.24%  ±1.65%  ±2.15%
http/end-vs-write-end.js duration=5 method='end' c=100 len=262144 type='utf' benchmarker='wrk'                    0.04 %       ±0.91%  ±1.21%  ±1.57%
http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='asc' benchmarker='wrk'            ***     -2.74 %       ±1.31%  ±1.75%  ±2.27%
http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='buf' benchmarker='wrk'            ***     -4.20 %       ±1.99%  ±2.65%  ±3.45%
http/end-vs-write-end.js duration=5 method='end' c=100 len=65536 type='utf' benchmarker='wrk'             **     -2.26 %       ±1.33%  ±1.77%  ±2.30%
http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='asc' benchmarker='wrk'                -0.05 %       ±1.07%  ±1.42%  ±1.85%
http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='buf' benchmarker='wrk'                 0.87 %       ±2.47%  ±3.31%  ±4.35%
http/end-vs-write-end.js duration=5 method='write' c=100 len=1048576 type='utf' benchmarker='wrk'                 0.16 %       ±1.14%  ±1.52%  ±1.99%
http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='asc' benchmarker='wrk'          **     -1.73 %       ±1.28%  ±1.70%  ±2.22%
http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='buf' benchmarker='wrk'         ***     -3.44 %       ±1.91%  ±2.54%  ±3.31%
http/end-vs-write-end.js duration=5 method='write' c=100 len=131072 type='utf' benchmarker='wrk'           *     -1.17 %       ±1.06%  ±1.41%  ±1.84%
http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='asc' benchmarker='wrk'                 -0.26 %       ±1.42%  ±1.88%  ±2.45%
http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='buf' benchmarker='wrk'           *     -1.83 %       ±1.47%  ±1.95%  ±2.54%
http/end-vs-write-end.js duration=5 method='write' c=100 len=262144 type='utf' benchmarker='wrk'                 -0.48 %       ±0.92%  ±1.23%  ±1.60%
http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='asc' benchmarker='wrk'           **     -1.87 %       ±1.38%  ±1.84%  ±2.39%
http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='buf' benchmarker='wrk'          ***     -5.04 %       ±2.03%  ±2.70%  ±3.52%
http/end-vs-write-end.js duration=5 method='write' c=100 len=65536 type='utf' benchmarker='wrk'                  -0.96 %       ±1.15%  ±1.53%  ±1.99%
http/headers.js duration=5 len=1 n=10 benchmarker='wrk'                                                  ***    -10.06 %       ±5.71%  ±7.61%  ±9.91%
http/headers.js duration=5 len=1 n=600 benchmarker='wrk'                                                 ***     -7.25 %       ±2.32%  ±3.10%  ±4.05%
http/headers.js duration=5 len=100 n=10 benchmarker='wrk'                                                 **     -7.12 %       ±5.03%  ±6.70%  ±8.72%
http/headers.js duration=5 len=100 n=600 benchmarker='wrk'                                               ***    -10.92 %       ±2.36%  ±3.15%  ±4.12%
http/http_server_for_chunky_client.js type='send' n=2000 len=1                                                    0.18 %       ±1.09%  ±1.45%  ±1.89%
http/http_server_for_chunky_client.js type='send' n=2000 len=128                                                 -0.80 %       ±1.52%  ±2.03%  ±2.65%
http/http_server_for_chunky_client.js type='send' n=2000 len=16                                                   0.00 %       ±1.19%  ±1.58%  ±2.06%
http/http_server_for_chunky_client.js type='send' n=2000 len=32                                                   0.18 %       ±1.90%  ±2.54%  ±3.32%
http/http_server_for_chunky_client.js type='send' n=2000 len=4                                                   -0.70 %       ±2.00%  ±2.67%  ±3.51%
http/http_server_for_chunky_client.js type='send' n=2000 len=64                                                  -1.60 %       ±2.03%  ±2.72%  ±3.59%
http/http_server_for_chunky_client.js type='send' n=2000 len=8                                                   -1.28 %       ±1.53%  ±2.04%  ±2.67%
http/http_server_for_chunky_client.js type='send' n=5 len=1                                                       2.85 %       ±5.44%  ±7.27%  ±9.51%
http/http_server_for_chunky_client.js type='send' n=5 len=128                                                    -1.82 %       ±7.25%  ±9.65% ±12.57%
http/http_server_for_chunky_client.js type='send' n=5 len=16                                                     -5.35 %       ±8.36% ±11.12% ±14.48%
http/http_server_for_chunky_client.js type='send' n=5 len=32                                                      1.96 %       ±8.15% ±10.84% ±14.11%
http/http_server_for_chunky_client.js type='send' n=5 len=4                                                      -2.97 %       ±7.75% ±10.32% ±13.43%
http/http_server_for_chunky_client.js type='send' n=5 len=64                                                     -6.34 %       ±7.99% ±10.63% ±13.83%
http/http_server_for_chunky_client.js type='send' n=5 len=8                                                      -2.72 %       ±8.54% ±11.37% ±14.79%
http/http_server_for_chunky_client.js type='send' n=50 len=1                                                     -1.86 %       ±5.20%  ±6.93%  ±9.03%
http/http_server_for_chunky_client.js type='send' n=50 len=128                                                    0.87 %       ±8.50% ±11.31% ±14.72%
http/http_server_for_chunky_client.js type='send' n=50 len=16                                                    -1.70 %       ±8.13% ±10.82% ±14.08%
http/http_server_for_chunky_client.js type='send' n=50 len=32                                                    -0.11 %       ±8.47% ±11.26% ±14.66%
http/http_server_for_chunky_client.js type='send' n=50 len=4                                                      4.89 %       ±8.18% ±10.89% ±14.17%
http/http_server_for_chunky_client.js type='send' n=50 len=64                                                    -4.99 %       ±7.82% ±10.41% ±13.55%
http/http_server_for_chunky_client.js type='send' n=50 len=8                                                      3.32 %       ±8.35% ±11.10% ±14.45%
http/http_server_for_chunky_client.js type='send' n=500 len=1                                                    -1.01 %       ±2.83%  ±3.77%  ±4.91%
http/http_server_for_chunky_client.js type='send' n=500 len=128                                                   0.27 %       ±2.28%  ±3.04%  ±3.95%
http/http_server_for_chunky_client.js type='send' n=500 len=16                                                   -1.10 %       ±2.58%  ±3.44%  ±4.49%
http/http_server_for_chunky_client.js type='send' n=500 len=32                                                    1.54 %       ±2.78%  ±3.70%  ±4.82%
http/http_server_for_chunky_client.js type='send' n=500 len=4                                                     0.46 %       ±3.31%  ±4.40%  ±5.73%
http/http_server_for_chunky_client.js type='send' n=500 len=64                                                   -0.80 %       ±2.25%  ±2.99%  ±3.90%
http/http_server_for_chunky_client.js type='send' n=500 len=8                                                     0.33 %       ±1.85%  ±2.46%  ±3.20%
http/incoming_headers.js duration=5 w=0 headers=20 connections=50 benchmarker='wrk'                      ***    -11.16 %       ±3.67%  ±4.88%  ±6.36%
http/incoming_headers.js duration=5 w=6 headers=20 connections=50 benchmarker='wrk'                      ***    -11.10 %       ±3.46%  ±4.61%  ±6.00%
http/set_header.js n=1000000 value='Connection'                                                                   1.35 %       ±3.89%  ±5.18%  ±6.75%
http/set_header.js n=1000000 value='Content-Length'                                                               0.87 %       ±3.54%  ±4.71%  ±6.14%
http/set_header.js n=1000000 value='Content-Type'                                                                 1.12 %       ±3.93%  ±5.23%  ±6.81%
http/set_header.js n=1000000 value='Set-Cookie'                                                                  -2.63 %       ±5.32%  ±7.08%  ±9.23%
http/set_header.js n=1000000 value='Transfer-Encoding'                                                            1.40 %       ±3.37%  ±4.49%  ±5.85%
http/set_header.js n=1000000 value='Vary'                                                                        -1.51 %       ±7.21%  ±9.59% ±12.48%
http/set_header.js n=1000000 value='X-Powered-By'                                                                 0.43 %       ±5.01%  ±6.67%  ±8.68%
http/set-header.js duration=5 res='normal' benchmarker='wrk'                                               *     -4.27 %       ±3.54%  ±4.72%  ±6.16%
http/set-header.js duration=5 res='setHeader' benchmarker='wrk'                                          ***     -5.88 %       ±2.91%  ±3.87%  ±5.05%
http/set-header.js duration=5 res='setHeaderWH' benchmarker='wrk'                                        ***     -5.71 %       ±3.20%  ±4.27%  ±5.57%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=1024 type='buffer' benchmarker='wrk'            ***     -8.25 %       ±2.55%  ±3.39%  ±4.41%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=1024 type='bytes' benchmarker='wrk'             ***     -6.72 %       ±2.88%  ±3.84%  ±5.01%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=102400 type='buffer' benchmarker='wrk'          ***     -4.97 %       ±1.89%  ±2.52%  ±3.28%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=102400 type='bytes' benchmarker='wrk'           ***     -2.74 %       ±1.33%  ±1.76%  ±2.30%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=4 type='buffer' benchmarker='wrk'               ***     -7.96 %       ±2.66%  ±3.53%  ±4.60%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=1 len=4 type='bytes' benchmarker='wrk'                 **     -5.02 %       ±3.19%  ±4.25%  ±5.55%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=1024 type='buffer' benchmarker='wrk'            ***     -6.36 %       ±2.61%  ±3.47%  ±4.53%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=1024 type='bytes' benchmarker='wrk'             ***     -4.71 %       ±2.39%  ±3.18%  ±4.14%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=102400 type='buffer' benchmarker='wrk'          ***     -5.71 %       ±2.41%  ±3.20%  ±4.17%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=102400 type='bytes' benchmarker='wrk'           ***     -4.11 %       ±1.64%  ±2.18%  ±2.85%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=4 type='buffer' benchmarker='wrk'               ***     -6.84 %       ±2.63%  ±3.51%  ±4.58%
http/simple.js duration=5 chunkedEnc=0 c=50 chunks=4 len=4 type='bytes' benchmarker='wrk'                ***     -8.06 %       ±2.64%  ±3.51%  ±4.57%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=1024 type='buffer' benchmarker='wrk'           ***     -9.88 %       ±2.00%  ±2.66%  ±3.46%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=1024 type='bytes' benchmarker='wrk'            ***     -5.70 %       ±2.76%  ±3.68%  ±4.80%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=102400 type='buffer' benchmarker='wrk'         ***     -3.87 %       ±1.77%  ±2.36%  ±3.07%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=102400 type='bytes' benchmarker='wrk'                  -1.11 %       ±1.88%  ±2.51%  ±3.27%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=4 type='buffer' benchmarker='wrk'              ***     -9.43 %       ±2.95%  ±3.92%  ±5.11%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=1 len=4 type='bytes' benchmarker='wrk'               ***     -6.58 %       ±3.37%  ±4.49%  ±5.85%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=1024 type='buffer' benchmarker='wrk'           ***     -7.79 %       ±2.47%  ±3.29%  ±4.29%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=1024 type='bytes' benchmarker='wrk'            ***     -6.39 %       ±2.68%  ±3.58%  ±4.68%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=102400 type='buffer' benchmarker='wrk'         ***     -3.76 %       ±1.91%  ±2.54%  ±3.31%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=102400 type='bytes' benchmarker='wrk'          ***     -3.56 %       ±1.52%  ±2.02%  ±2.64%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=4 type='buffer' benchmarker='wrk'              ***     -7.94 %       ±2.21%  ±2.94%  ±3.84%
http/simple.js duration=5 chunkedEnc=0 c=500 chunks=4 len=4 type='bytes' benchmarker='wrk'                **     -4.41 %       ±2.65%  ±3.54%  ±4.63%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=1024 type='buffer' benchmarker='wrk'             **     -4.90 %       ±2.94%  ±3.93%  ±5.13%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=1024 type='bytes' benchmarker='wrk'             ***     -7.05 %       ±3.10%  ±4.13%  ±5.38%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=102400 type='buffer' benchmarker='wrk'                  -1.58 %       ±2.34%  ±3.12%  ±4.08%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=102400 type='bytes' benchmarker='wrk'           ***     -3.24 %       ±1.36%  ±1.81%  ±2.36%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=4 type='buffer' benchmarker='wrk'                 *     -3.83 %       ±2.98%  ±3.96%  ±5.16%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=1 len=4 type='bytes' benchmarker='wrk'                ***     -7.89 %       ±3.27%  ±4.36%  ±5.69%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=1024 type='buffer' benchmarker='wrk'            ***     -6.07 %       ±2.29%  ±3.05%  ±3.97%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=1024 type='bytes' benchmarker='wrk'              **     -3.88 %       ±2.25%  ±3.00%  ±3.90%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=102400 type='buffer' benchmarker='wrk'           **     -3.09 %       ±1.91%  ±2.54%  ±3.31%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=102400 type='bytes' benchmarker='wrk'           ***     -2.45 %       ±1.36%  ±1.81%  ±2.35%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=4 type='buffer' benchmarker='wrk'               ***     -4.60 %       ±2.64%  ±3.51%  ±4.57%
http/simple.js duration=5 chunkedEnc=1 c=50 chunks=4 len=4 type='bytes' benchmarker='wrk'                ***     -6.07 %       ±1.92%  ±2.55%  ±3.32%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=1024 type='buffer' benchmarker='wrk'            **     -4.07 %       ±2.80%  ±3.73%  ±4.86%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=1024 type='bytes' benchmarker='wrk'            ***     -7.16 %       ±2.79%  ±3.71%  ±4.83%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=102400 type='buffer' benchmarker='wrk'          **     -3.33 %       ±1.96%  ±2.60%  ±3.39%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=102400 type='bytes' benchmarker='wrk'            *     -2.17 %       ±1.86%  ±2.48%  ±3.22%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=4 type='buffer' benchmarker='wrk'              ***     -7.43 %       ±2.89%  ±3.84%  ±5.00%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=1 len=4 type='bytes' benchmarker='wrk'               ***     -6.72 %       ±2.96%  ±3.94%  ±5.13%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=1024 type='buffer' benchmarker='wrk'           ***     -6.23 %       ±2.20%  ±2.93%  ±3.82%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=1024 type='bytes' benchmarker='wrk'            ***     -5.66 %       ±2.28%  ±3.03%  ±3.95%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=102400 type='buffer' benchmarker='wrk'          **     -3.32 %       ±1.98%  ±2.64%  ±3.44%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=102400 type='bytes' benchmarker='wrk'          ***     -3.88 %       ±1.67%  ±2.22%  ±2.89%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=4 type='buffer' benchmarker='wrk'              ***     -7.08 %       ±2.38%  ±3.17%  ±4.12%
http/simple.js duration=5 chunkedEnc=1 c=500 chunks=4 len=4 type='bytes' benchmarker='wrk'               ***     -6.21 %       ±2.18%  ±2.90%  ±3.78%
http/upgrade.js n=1000                                                                                           -1.42 %       ±3.13%  ±4.17%  ±5.42%
http/upgrade.js n=5                                                                                              -0.23 %       ±7.57% ±10.07% ±13.11%

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 (***)

@anonrig
Copy link
Member

anonrig commented Jul 6, 2023

The performance impact is not worth this change. I was going to request changes but since @mcollina did, there is no need. I recommend not merging this PR.

@rluvaton
Copy link
Member Author

rluvaton commented Jul 6, 2023

closing due to performance implication

@rluvaton rluvaton closed this Jul 6, 2023
@rluvaton rluvaton deleted the add-proto-null-to-http branch July 6, 2023 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants