| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Removes the use of vector in EndsInANumber and uses IsIPv4NumberValid instead of parsing the number to check if it is valid. Fixes: nodejs/performance#36 Refs: ada-url/ada#36
|
hello everyone! |
Sorry, something went wrong.
|
@miguelteixeiraa please use the following command: CLANG_FORMAT_START=main make format-cpp |
Sorry, something went wrong.
|
Done! It hasn't changed that much : / |
Sorry, something went wrong.
|
Yeah, it seems format-cpp is not the correct command. Can you remove the unrelated changes from this pull request? @miguelteixeiraa |
Sorry, something went wrong.
|
Of course! |
Sorry, something went wrong.
|
Done! |
Sorry, something went wrong.
|
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1293/ Resultsurl/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='auth' 0.27 % ±2.74% ±3.65% ±4.75%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='dot' 4.09 % ±4.47% ±5.99% ±7.88%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='file' -0.55 % ±3.87% ±5.16% ±6.72%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='idn' -0.88 % ±2.28% ±3.03% ±3.94%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='javascript' -1.69 % ±3.45% ±4.60% ±5.98%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='long' -2.52 % ±3.64% ±4.87% ±6.40%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='percent' -0.90 % ±3.80% ±5.06% ±6.59%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='short' -0.96 % ±4.62% ±6.17% ±8.08%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='wpt' 1.14 % ±2.08% ±2.76% ±3.60%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='ws' 0.45 % ±2.40% ±3.19% ±4.16%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='auth' -0.90 % ±1.27% ±1.70% ±2.23%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='dot' -1.87 % ±2.65% ±3.54% ±4.63%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='file' -2.85 % ±3.42% ±4.56% ±5.96%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='idn' 0.15 % ±1.39% ±1.85% ±2.42%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='javascript' 0.24 % ±5.75% ±7.67% ±10.03%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='long' 1.06 % ±2.40% ±3.20% ±4.18%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='percent' 3.71 % ±4.40% ±5.87% ±7.69%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='short' * 3.04 % ±2.66% ±3.58% ±4.73%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='wpt' 0.21 % ±0.90% ±1.20% ±1.57%
url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='ws' * -3.83 % ±3.13% ±4.20% ±5.55%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='false' -0.42 % ±2.96% ±3.96% ±5.17%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='true' 0.18 % ±2.94% ±3.91% ±5.09%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='false' -0.87 % ±3.51% ±4.67% ±6.08%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='true' -0.40 % ±2.76% ±3.68% ±4.79%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='false' -1.86 % ±4.74% ±6.30% ±8.20%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='true' -0.87 % ±6.11% ±8.14% ±10.62%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='false' -2.87 % ±4.33% ±5.76% ±7.49%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='true' -2.18 % ±3.69% ±4.91% ±6.39%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='false' 0.56 % ±5.57% ±7.40% ±9.64%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='true' 2.96 % ±7.62% ±10.15% ±13.23%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='false' 0.66 % ±1.34% ±1.79% ±2.33%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='true' -0.60 % ±1.51% ±2.00% ±2.61%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='false' 0.14 % ±4.64% ±6.18% ±8.04%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='true' -1.50 % ±4.11% ±5.48% ±7.14%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='false' ** 4.73 % ±3.46% ±4.60% ±5.99%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='true' 2.02 % ±3.19% ±4.25% ±5.54%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='false' -0.76 % ±1.04% ±1.38% ±1.81%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='true' -0.17 % ±1.07% ±1.43% ±1.86%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='false' -0.48 % ±1.85% ±2.46% ±3.20%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='true' 0.77 % ±3.22% ±4.29% ±5.60%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='false' *** 10.62 % ±5.01% ±6.67% ±8.68%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='true' ** 6.51 % ±4.55% ±6.06% ±7.90%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='false' *** 12.21 % ±6.36% ±8.47% ±11.03%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='true' ** 9.06 % ±5.30% ±7.05% ±9.18%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='false' 4.08 % ±6.44% ±8.57% ±11.16%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='true' -3.04 % ±5.43% ±7.23% ±9.41%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='false' ** 10.78 % ±6.81% ±9.06% ±11.80%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='true' *** 10.46 % ±4.88% ±6.49% ±8.46%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='false' -2.47 % ±6.45% ±8.58% ±11.17%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='true' 2.89 % ±5.55% ±7.39% ±9.62%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='false' 5.01 % ±5.40% ±7.19% ±9.37%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='true' *** 11.50 % ±3.95% ±5.26% ±6.84%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='false' * 8.46 % ±6.38% ±8.50% ±11.06%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='true' *** 11.78 % ±5.53% ±7.36% ±9.58%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='false' *** 20.33 % ±6.83% ±9.09% ±11.83%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='true' 4.60 % ±4.63% ±6.16% ±8.01%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='false' *** 14.11 % ±2.15% ±2.87% ±3.74%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='true' *** 5.62 % ±1.85% ±2.46% ±3.21%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='false' *** 16.45 % ±7.14% ±9.51% ±12.37%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='true' ** 8.74 % ±5.76% ±7.66% ±9.97%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='altspaces' 1.04 % ±2.32% ±3.09% ±4.02%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodefake' 0.88 % ±2.39% ±3.18% ±4.14%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodelast' 0.46 % ±3.51% ±4.68% ±6.10%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodemany' 0.70 % ±2.54% ±3.39% ±4.41%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='manyblankpairs' -0.07 % ±3.54% ±4.73% ±6.18%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='manypairs' -1.39 % ±2.63% ±3.51% ±4.60%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multicharsep' 0.33 % ±2.64% ±3.53% ±4.63%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multivalue' 0.14 % ±2.57% ±3.43% ±4.49%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multivaluemany' * -2.82 % ±2.44% ±3.26% ±4.27%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='noencode' 0.19 % ±2.25% ±3.00% ±3.92%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='altspaces' 2.11 % ±2.40% ±3.19% ±4.15%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodefake' 0.22 % ±3.16% ±4.21% ±5.48%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodelast' -0.50 % ±3.02% ±4.02% ±5.23%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodemany' 0.46 % ±3.34% ±4.45% ±5.82%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='manyblankpairs' 0.17 % ±6.82% ±9.08% ±11.82%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='manypairs' 0.79 % ±2.23% ±2.98% ±3.90%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multicharsep' 2.08 % ±2.64% ±3.51% ±4.58%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multivalue' -1.00 % ±2.29% ±3.05% ±3.97%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multivaluemany' -1.06 % ±2.72% ±3.62% ±4.72%
url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='noencode' -0.86 % ±3.35% ±4.46% ±5.80%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='altspaces' 0.20 % ±1.35% ±1.80% ±2.35%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodefake' 1.77 % ±2.00% ±2.67% ±3.47%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodelast' -0.48 % ±3.50% ±4.65% ±6.06%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodemany' -0.64 % ±1.87% ±2.51% ±3.31%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='manyblankpairs' 5.12 % ±6.33% ±8.52% ±11.30%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='manypairs' -0.56 % ±1.80% ±2.41% ±3.15%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multicharsep' -0.58 % ±2.77% ±3.69% ±4.80%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multivalue' 2.95 % ±3.34% ±4.45% ±5.79%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multivaluemany' 0.37 % ±1.29% ±1.71% ±2.23%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='noencode' 0.96 % ±1.92% ±2.56% ±3.34%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='altspaces' 0.73 % ±2.08% ±2.77% ±3.62%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodefake' 1.21 % ±2.48% ±3.30% ±4.31%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodelast' -1.40 % ±4.39% ±5.84% ±7.61%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodemany' 3.34 % ±3.45% ±4.59% ±5.98%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='manyblankpairs' -0.32 % ±3.17% ±4.22% ±5.49%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='manypairs' -0.66 % ±1.12% ±1.49% ±1.95%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multicharsep' 2.62 % ±3.85% ±5.13% ±6.70%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multivalue' * -3.59 % ±3.06% ±4.08% ±5.33%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multivaluemany' 0.92 % ±1.76% ±2.34% ±3.05%
url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='noencode' 3.73 % ±4.05% ±5.40% ±7.07%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='auth' -3.02 % ±9.63% ±12.81% ±16.68%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='dot' -3.07 % ±10.33% ±13.75% ±17.90%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='file' 4.93 % ±10.35% ±13.77% ±17.92%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='idn' 6.37 % ±10.02% ±13.33% ±17.36%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='javascript' 3.60 % ±10.12% ±13.46% ±17.53%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='long' -0.73 % ±9.21% ±12.25% ±15.95%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='percent' 2.81 % ±8.27% ±11.01% ±14.35%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='short' ** -11.48 % ±8.16% ±10.88% ±14.20%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='wpt' 0.03 % ±3.33% ±4.46% ±5.85%
url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='ws' 3.65 % ±9.66% ±12.85% ±16.73%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='auth' -6.70 % ±9.63% ±12.82% ±16.68%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='dot' 2.12 % ±10.86% ±14.44% ±18.80%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='file' 1.08 % ±10.48% ±13.95% ±18.16%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='idn' 2.94 % ±9.27% ±12.33% ±16.05%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='javascript' 8.10 % ±8.71% ±11.61% ±15.16%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='long' -6.84 % ±9.92% ±13.21% ±17.19%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='percent' 0.99 % ±8.42% ±11.20% ±14.59%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='short' -4.84 % ±9.68% ±12.88% ±16.77%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='wpt' 1.07 % ±2.14% ±2.85% ±3.72%
url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='ws' -6.14 % ±10.33% ±13.75% ±17.90%
url/url-format.js n=25000000 type='file' 1.62 % ±2.11% ±2.81% ±3.67%
url/url-format.js n=25000000 type='slashes' 0.42 % ±1.14% ±1.53% ±1.99%
url/url-parse.js n=10000000 type='escaped' -1.73 % ±2.45% ±3.26% ±4.25%
url/url-parse.js n=10000000 type='normal' 1.66 % ±2.97% ±3.96% ±5.15%
url/url-resolve.js n=100000 path='down' href='auth' 0.24 % ±3.04% ±4.05% ±5.27%
url/url-resolve.js n=100000 path='down' href='dot' -0.47 % ±2.42% ±3.23% ±4.21%
url/url-resolve.js n=100000 path='down' href='file' 1.33 % ±2.96% ±3.94% ±5.13%
url/url-resolve.js n=100000 path='down' href='idn' * -3.15 % ±3.06% ±4.08% ±5.33%
url/url-resolve.js n=100000 path='down' href='javascript' -1.35 % ±2.59% ±3.45% ±4.49%
url/url-resolve.js n=100000 path='down' href='long' -0.21 % ±2.38% ±3.17% ±4.12%
url/url-resolve.js n=100000 path='down' href='noscheme' -0.78 % ±3.43% ±4.56% ±5.95%
url/url-resolve.js n=100000 path='down' href='percent' * -2.79 % ±2.14% ±2.85% ±3.72%
url/url-resolve.js n=100000 path='down' href='short' -1.25 % ±3.38% ±4.49% ±5.85%
url/url-resolve.js n=100000 path='down' href='ws' -1.95 % ±2.61% ±3.48% ±4.53%
url/url-resolve.js n=100000 path='foo/bar' href='auth' -0.80 % ±3.58% ±4.77% ±6.23%
url/url-resolve.js n=100000 path='foo/bar' href='dot' -0.88 % ±2.93% ±3.90% ±5.07%
url/url-resolve.js n=100000 path='foo/bar' href='file' 0.62 % ±2.84% ±3.78% ±4.92%
url/url-resolve.js n=100000 path='foo/bar' href='idn' * -3.29 % ±3.02% ±4.02% ±5.24%
url/url-resolve.js n=100000 path='foo/bar' href='javascript' -0.16 % ±3.43% ±4.57% ±5.94%
url/url-resolve.js n=100000 path='foo/bar' href='long' -0.20 % ±2.37% ±3.15% ±4.11%
url/url-resolve.js n=100000 path='foo/bar' href='noscheme' -1.64 % ±3.54% ±4.71% ±6.14%
url/url-resolve.js n=100000 path='foo/bar' href='percent' ** -3.89 % ±2.29% ±3.05% ±3.97%
url/url-resolve.js n=100000 path='foo/bar' href='short' -2.38 % ±3.21% ±4.27% ±5.57%
url/url-resolve.js n=100000 path='foo/bar' href='ws' -2.62 % ±3.67% ±4.89% ±6.38%
url/url-resolve.js n=100000 path='sibling' href='auth' -2.29 % ±3.36% ±4.48% ±5.83%
url/url-resolve.js n=100000 path='sibling' href='dot' -2.23 % ±2.87% ±3.82% ±4.97%
url/url-resolve.js n=100000 path='sibling' href='file' -0.84 % ±2.67% ±3.56% ±4.67%
url/url-resolve.js n=100000 path='sibling' href='idn' -3.42 % ±3.58% ±4.76% ±6.20%
url/url-resolve.js n=100000 path='sibling' href='javascript' 0.36 % ±3.30% ±4.39% ±5.72%
url/url-resolve.js n=100000 path='sibling' href='long' -0.33 % ±3.06% ±4.08% ±5.31%
url/url-resolve.js n=100000 path='sibling' href='noscheme' -1.71 % ±3.32% ±4.42% ±5.77%
url/url-resolve.js n=100000 path='sibling' href='percent' -0.63 % ±2.78% ±3.71% ±4.83%
url/url-resolve.js n=100000 path='sibling' href='short' -1.07 % ±3.41% ±4.56% ±5.96%
url/url-resolve.js n=100000 path='sibling' href='ws' -0.81 % ±2.58% ±3.43% ±4.47%
url/url-resolve.js n=100000 path='up' href='auth' 0.76 % ±2.75% ±3.67% ±4.78%
url/url-resolve.js n=100000 path='up' href='dot' -0.76 % ±1.90% ±2.53% ±3.30%
url/url-resolve.js n=100000 path='up' href='file' 0.85 % ±2.78% ±3.70% ±4.82%
url/url-resolve.js n=100000 path='up' href='idn' ** -3.77 % ±2.81% ±3.74% ±4.87%
url/url-resolve.js n=100000 path='up' href='javascript' 0.43 % ±3.16% ±4.21% ±5.48%
url/url-resolve.js n=100000 path='up' href='long' ** 2.40 % ±1.73% ±2.31% ±3.00%
url/url-resolve.js n=100000 path='up' href='noscheme' 0.84 % ±2.70% ±3.59% ±4.69%
url/url-resolve.js n=100000 path='up' href='percent' -0.80 % ±2.55% ±3.39% ±4.42%
url/url-resolve.js n=100000 path='up' href='short' -1.18 % ±3.71% ±4.94% ±6.43%
url/url-resolve.js n=100000 path='up' href='ws' -1.44 % ±2.70% ±3.60% ±4.68%
url/url-resolve.js n=100000 path='withscheme' href='auth' 0.75 % ±2.51% ±3.34% ±4.35%
url/url-resolve.js n=100000 path='withscheme' href='dot' 2.05 % ±2.93% ±3.90% ±5.10%
url/url-resolve.js n=100000 path='withscheme' href='file' -0.08 % ±2.55% ±3.40% ±4.46%
url/url-resolve.js n=100000 path='withscheme' href='idn' -0.14 % ±2.66% ±3.54% ±4.61%
url/url-resolve.js n=100000 path='withscheme' href='javascript' 0.78 % ±3.93% ±5.23% ±6.81%
url/url-resolve.js n=100000 path='withscheme' href='long' 1.02 % ±2.03% ±2.70% ±3.51%
url/url-resolve.js n=100000 path='withscheme' href='noscheme' -0.04 % ±4.26% ±5.66% ±7.37%
url/url-resolve.js n=100000 path='withscheme' href='percent' 2.59 % ±2.81% ±3.74% ±4.86%
url/url-resolve.js n=100000 path='withscheme' href='short' 0.99 % ±3.14% ±4.18% ±5.45%
url/url-resolve.js n=100000 path='withscheme' href='ws' 1.59 % ±2.77% ±3.68% ±4.79%
url/url-searchparams-iteration.js n=1000000 loopMethod='forEach' -8.10 % ±8.41% ±11.21% ±14.63%
url/url-searchparams-iteration.js n=1000000 loopMethod='iterator' 0.28 % ±3.36% ±4.48% ±5.85%
url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='get' 0.48 % ±2.35% ±3.14% ±4.11%
url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='getAll' * -3.12 % ±3.00% ±4.01% ±5.25%
url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='has' -2.25 % ±2.30% ±3.07% ±4.00%
url/url-searchparams-read.js n=20000000 param='one' accessMethod='get' -0.47 % ±2.07% ±2.76% ±3.59%
url/url-searchparams-read.js n=20000000 param='one' accessMethod='getAll' 1.29 % ±1.90% ±2.53% ±3.30%
url/url-searchparams-read.js n=20000000 param='one' accessMethod='has' -0.57 % ±3.05% ±4.06% ±5.29%
url/url-searchparams-read.js n=20000000 param='three' accessMethod='get' -0.36 % ±2.13% ±2.84% ±3.71%
url/url-searchparams-read.js n=20000000 param='three' accessMethod='getAll' -1.39 % ±2.51% ±3.34% ±4.37%
url/url-searchparams-read.js n=20000000 param='three' accessMethod='has' 0.45 % ±2.60% ±3.46% ±4.51%
url/url-searchparams-read.js n=20000000 param='two' accessMethod='get' -0.20 % ±2.75% ±3.68% ±4.83%
url/url-searchparams-read.js n=20000000 param='two' accessMethod='getAll' -1.05 % ±2.18% ±2.91% ±3.82%
url/url-searchparams-read.js n=20000000 param='two' accessMethod='has' 0.58 % ±3.14% ±4.17% ±5.44%
url/url-searchparams-sort.js n=1000000 type='almostsorted' 1.42 % ±2.36% ±3.13% ±4.08%
url/url-searchparams-sort.js n=1000000 type='empty' 0.69 % ±4.69% ±6.24% ±8.13%
url/url-searchparams-sort.js n=1000000 type='long' ** -2.99 % ±2.02% ±2.70% ±3.53%
url/url-searchparams-sort.js n=1000000 type='random' -0.90 % ±1.28% ±1.71% ±2.23%
url/url-searchparams-sort.js n=1000000 type='reversed' -1.46 % ±2.35% ±3.16% ±4.16%
url/url-searchparams-sort.js n=1000000 type='short' * 4.12 % ±3.91% ±5.23% ±6.87%
url/url-searchparams-sort.js n=1000000 type='sorted' 1.39 % ±3.12% ±4.15% ±5.41%
url/url-searchparams-sort.js n=1000000 type='wpt' 2.46 % ±3.96% ±5.33% ±7.06%
url/usvstring.js n=50000000 input='allinvalid' ** -3.93 % ±2.59% ±3.46% ±4.51%
url/usvstring.js n=50000000 input='nonstring' * 3.14 % ±2.83% ±3.78% ±4.95%
url/usvstring.js n=50000000 input='someinvalid' 0.84 % ±2.62% ±3.49% ±4.54%
url/usvstring.js n=50000000 input='valid' -1.71 % ±2.25% ±3.02% ±4.00%
url/usvstring.js n=50000000 input='validsurr' 0.11 % ±2.16% ±2.88% ±3.76%
url/whatwg-url-idna.js n=5000000 to='ascii' domain='all' *** 37.77 % ±2.99% ±3.98% ±5.18%
url/whatwg-url-idna.js n=5000000 to='ascii' domain='empty' 2.62 % ±2.92% ±3.88% ±5.06%
url/whatwg-url-idna.js n=5000000 to='ascii' domain='none' *** 75.96 % ±7.20% ±9.64% ±12.67%
url/whatwg-url-idna.js n=5000000 to='ascii' domain='nonstring' 1.24 % ±1.83% ±2.44% ±3.17%
url/whatwg-url-idna.js n=5000000 to='ascii' domain='some' *** 48.65 % ±4.61% ±6.14% ±7.99%
url/whatwg-url-idna.js n=5000000 to='unicode' domain='all' *** 18.40 % ±3.26% ±4.38% ±5.76%
url/whatwg-url-idna.js n=5000000 to='unicode' domain='empty' -1.45 % ±3.80% ±5.05% ±6.58%
url/whatwg-url-idna.js n=5000000 to='unicode' domain='none' *** 58.41 % ±7.02% ±9.40% ±12.36%
url/whatwg-url-idna.js n=5000000 to='unicode' domain='nonstring' *** 3.56 % ±1.67% ±2.22% ±2.89%
url/whatwg-url-idna.js n=5000000 to='unicode' domain='some' *** 24.97 % ±3.96% ±5.29% ±6.92%
url/whatwg-url-properties.js prop='hash' e=1 type='wpt' withBase='false' -0.37 % ±1.87% ±2.49% ±3.24%
url/whatwg-url-properties.js prop='hash' e=1 type='wpt' withBase='true' -0.26 % ±2.57% ±3.42% ±4.47%
url/whatwg-url-properties.js prop='host' e=1 type='wpt' withBase='false' *** 16.52 % ±2.93% ±3.91% ±5.11%
url/whatwg-url-properties.js prop='host' e=1 type='wpt' withBase='true' *** 12.42 % ±2.88% ±3.85% ±5.05%
url/whatwg-url-properties.js prop='hostname' e=1 type='wpt' withBase='false' *** 21.44 % ±5.09% ±6.79% ±8.89%
url/whatwg-url-properties.js prop='hostname' e=1 type='wpt' withBase='true' *** 13.59 % ±2.50% ±3.32% ±4.32%
url/whatwg-url-properties.js prop='href' e=1 type='wpt' withBase='false' *** 7.99 % ±3.08% ±4.10% ±5.35%
url/whatwg-url-properties.js prop='href' e=1 type='wpt' withBase='true' *** 10.43 % ±2.44% ±3.25% ±4.25%
url/whatwg-url-properties.js prop='origin' e=1 type='wpt' withBase='false' 0.89 % ±3.12% ±4.17% ±5.46%
url/whatwg-url-properties.js prop='origin' e=1 type='wpt' withBase='true' ** 3.30 % ±2.39% ±3.19% ±4.15%
url/whatwg-url-properties.js prop='password' e=1 type='wpt' withBase='false' -0.17 % ±2.60% ±3.46% ±4.51%
url/whatwg-url-properties.js prop='password' e=1 type='wpt' withBase='true' 1.51 % ±2.97% ±3.96% ±5.15%
url/whatwg-url-properties.js prop='pathname' e=1 type='wpt' withBase='false' -0.73 % ±3.15% ±4.19% ±5.46%
url/whatwg-url-properties.js prop='pathname' e=1 type='wpt' withBase='true' -2.68 % ±2.87% ±3.82% ±4.97%
url/whatwg-url-properties.js prop='port' e=1 type='wpt' withBase='false' 0.11 % ±1.94% ±2.58% ±3.36%
url/whatwg-url-properties.js prop='port' e=1 type='wpt' withBase='true' -0.73 % ±1.94% ±2.58% ±3.36%
url/whatwg-url-properties.js prop='protocol' e=1 type='wpt' withBase='false' 1.12 % ±3.32% ±4.42% ±5.76%
url/whatwg-url-properties.js prop='protocol' e=1 type='wpt' withBase='true' 0.99 % ±2.47% ±3.29% ±4.29%
url/whatwg-url-properties.js prop='search' e=1 type='wpt' withBase='false' 0.54 % ±3.74% ±5.01% ±6.58%
url/whatwg-url-properties.js prop='search' e=1 type='wpt' withBase='true' 0.44 % ±1.79% ±2.38% ±3.09%
url/whatwg-url-properties.js prop='searchParams' e=1 type='wpt' withBase='false' 1.77 % ±3.52% ±4.69% ±6.12%
url/whatwg-url-properties.js prop='searchParams' e=1 type='wpt' withBase='true' 0.32 % ±1.97% ±2.63% ±3.43%
url/whatwg-url-properties.js prop='username' e=1 type='wpt' withBase='false' -0.28 % ±2.11% ±2.80% ±3.65%
url/whatwg-url-properties.js prop='username' e=1 type='wpt' withBase='true' * 2.68 % ±2.40% ±3.20% ±4.17%
|
Sorry, something went wrong.
Sorry, something went wrong.
|
Okay, windows problems.. not sure what it is but I'm checking |
Sorry, something went wrong.
| } | ||
|
|
||
| char delimiter = '.'; | ||
| auto pointer_start = input.begin(); |
There was a problem hiding this comment.
If you use std::string_view::iterator it might solve the issues related to std::string_view construct on windows.
Sorry, something went wrong.
There was a problem hiding this comment.
done!
Sorry, something went wrong.
There was a problem hiding this comment.
Windows build is still failing : /
D:\a\node\node\src\node_url.cc(465,66): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'std::string_view' [D:\a\node\node\libnode.vcxproj] D:\a\node\node\src\node_url.cc(465,66): message : No constructor could take the source type, or constructor overload resolution was ambiguous [D:\a\node\node\libnode.vcxproj] node_util.cc
Sorry, something went wrong.
There was a problem hiding this comment.
I would like to know if I can go with &(*it); again
Sorry, something went wrong.
There was a problem hiding this comment.
@addaleax any recommendations?
Sorry, something went wrong.
There was a problem hiding this comment.
it'd look like this:
std::string_view(&(*pointer_start), pointer_end - pointer_start));
just to make the build pass on windows
Sorry, something went wrong.
There was a problem hiding this comment.
What i understand is that iterators don't need to be pointers although they could be implemented as one. And some implementations of the STL (MSVC++, Mingw) implement interators with special classes (with no pre-difined casts to pointer), so that we cannot use them directly in the string_view constructor that we are using, which needs a charT*.
then we could use * which is overloaded to do what logically mean: convert the iterator type to its pointed-to object, then pass the address of this &(*it).
https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator
https://stackoverflow.com/questions/32654108/c-stdvectoriterator-is-not-a-pointer-why/64910815#64910815
Sorry, something went wrong.
|
|
||
| return false; | ||
| return IsIPv4NumberValid( | ||
| std::string_view(&*pointer_start, pointer_end - pointer_start)); |
There was a problem hiding this comment.
This is too hacky (even if it's guaranteed safe).
Sorry, something went wrong.
There was a problem hiding this comment.
removed!
Sorry, something went wrong.
There was a problem hiding this comment.
I'll try a static_cast<const char*>
Sorry, something went wrong.
There was a problem hiding this comment.
@nodejs/cpp-reviewers any recommendations?
Sorry, something went wrong.
There was a problem hiding this comment.
Yeah: I would definitely recommeng to go back to the original "hacky" implementation. It works and looks correct, even if it is not visually pretty. (I'd also not call this pointer if it's an iterator.) const_cast<char*>(pointer_start) doesn't even really make sense since the string_view constructor takes a const char* argument.
Sorry, something went wrong.
There was a problem hiding this comment.
Yes, I think it only works on the other compilers because their implementations for the iterator are:
std::string_view::iterator' (aka 'const char *')
(I purposely caused an error to catch this 'aka' haha)
Sorry, something went wrong.
|
microbench: cpu: Apple M1 Pro runtime: node v20.0.0-pre (arm64-darwin) -- with this PR -- |
Sorry, something went wrong.
Sorry, something went wrong.
Are you measuring production build against development build? |
Sorry, something went wrong.
|
Thinking a little more, the microbench doesnt seem a good idea anymore. Sorry for that. Please just ignore (but yes, I guess I am) |
Sorry, something went wrong.
Sorry, something went wrong.
Removes the use of vector in EndsInANumber and uses IsIPv4NumberValid instead of parsing the number to check if it is valid. Fixes: nodejs/performance#36 Refs: ada-url/ada#36 PR-URL: #46227 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Removes the use of vector in EndsInANumber and uses IsIPv4NumberValid instead of parsing the number to check if it is valid. Fixes: nodejs/performance#36 Refs: ada-url/ada#36 PR-URL: #46227 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Removes the use of vector in EndsInANumber and uses IsIPv4NumberValid instead of parsing the number to check if it is valid. Fixes: nodejs/performance#36 Refs: ada-url/ada#36 PR-URL: #46227 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
| Back | FazBrowse Home | New Git URL |
Removes the use of vector in EndsInANumber and uses IsIPv4NumberValid instead of parsing the number to check if it is valid.
Fixes: nodejs/performance#36
Refs: ada-url/ada#36