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

build: add configure option --v8-enable-short-builtin-calls #42109

Conversation

qdaoming
Copy link
Contributor

Add configure option --v8-enable-short-builtin-calls
and enable it by default on x86_64 platform.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/v8-update

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. tools Issues and PRs related to the tools directory. v8 engine Issues and PRs related to the V8 dependency. labels Feb 24, 2022
@qdaoming qdaoming changed the title build: Add configure option --v8-enable-short-builtin-calls build: add configure option --v8-enable-short-builtin-calls Feb 24, 2022
@targos
Copy link
Member

targos commented Feb 24, 2022

Is this a breaking change for native addons?

@qdaoming
Copy link
Contributor Author

Is this a breaking change for native addons?

No, this is not a breaking change.
The short-builtin-calls feature is implemented inside V8 and can bring good performance(especially with SparkPlug feature which is enabled by default). Please refer to https://v8.dev/blog/short-builtin-calls.

@qdaoming
Copy link
Contributor Author

For the failed check "First commit message adheres to guidelines at https://goo.gl/p2fr5Q /...", I have modified the title format of this commit, but don't know how to rerun this failed check.

@targos
Copy link
Member

targos commented Feb 24, 2022

Should we be able to measure the performance improvement with our micro benchmarks?

@qdaoming
Copy link
Contributor Author

Should we be able to measure the performance improvement with our micro benchmarks?

We have tested the performance with some internal node.js application benchmarks, and short-builtin-calls(together with sparkplug) can bring +6% performance increase.
Could you provide the link to the micro benchmarks? I can measure it if possible.

@targos
Copy link
Member

targos commented Feb 26, 2022

@nodejs/build @nodejs/v8

@targos targos added the performance Issues and PRs related to the performance of Node.js. label Feb 26, 2022
@nodejs-github-bot
Copy link
Collaborator

@targos
Copy link
Member

targos commented Feb 26, 2022

Benchmark run on the assert benchmarks: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1099/

Results
                                                                                                                        confidence improvement accuracy (*)    (**)   (***)
assert/deepequal-buffer.js method='deepEqual' strict=0 len=1000 n=20000                                                                 1.92 %       ±6.39%  ±8.50% ±11.07%
assert/deepequal-buffer.js method='deepEqual' strict=0 len=100 n=20000                                                                  0.92 %       ±5.12%  ±6.82%  ±8.88%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=1000 n=20000                                                                -0.13 %       ±6.66%  ±8.86% ±11.54%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=100 n=20000                                                                 -1.51 %       ±6.20%  ±8.26% ±10.75%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=1000 n=20000                                                              2.89 %       ±7.02%  ±9.34% ±12.16%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=100 n=20000                                                               5.48 %       ±6.09%  ±8.10% ±10.54%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=1000 n=20000                                                              1.59 %       ±5.83%  ±7.76% ±10.10%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=100 n=20000                                                              -0.94 %       ±6.11%  ±8.14% ±10.60%
assert/deepequal-map.js method='deepEqual_mixed' strict=0 len=500 n=500                                                                 1.20 %       ±2.17%  ±2.89%  ±3.77%
assert/deepequal-map.js method='deepEqual_mixed' strict=1 len=500 n=500                                                                 1.22 %       ±1.66%  ±2.21%  ±2.88%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=0 len=500 n=500                                                            0.94 %       ±1.32%  ±1.76%  ±2.30%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=1 len=500 n=500                                                            0.09 %       ±1.33%  ±1.77%  ±2.30%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500                                                        -2.62 %       ±6.05%  ±8.07% ±10.53%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500                                                         1.36 %       ±4.47%  ±5.95%  ±7.75%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=0 len=500 n=500                                                             -0.26 %       ±6.90%  ±9.19% ±11.97%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=1 len=500 n=500                                                             -1.95 %       ±3.80%  ±5.05%  ±6.59%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500                                                        -0.04 %       ±2.14%  ±2.85%  ±3.71%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500                                                         0.74 %       ±2.10%  ±2.79%  ±3.63%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500                                                     -3.30 %       ±5.37%  ±7.16%  ±9.34%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500                                                     -1.79 %       ±4.89%  ±6.52%  ±8.49%
assert/deepequal-object.js method='deepEqual' strict=0 size=1000 n=5000                                                                -1.34 %       ±5.94%  ±7.90% ±10.29%
assert/deepequal-object.js method='deepEqual' strict=0 size=100 n=5000                                                                  1.26 %       ±5.48%  ±7.29%  ±9.49%
assert/deepequal-object.js method='deepEqual' strict=0 size=50000 n=5000                                                                1.63 %       ±2.04%  ±2.72%  ±3.54%
assert/deepequal-object.js method='deepEqual' strict=1 size=1000 n=5000                                                                 3.89 %       ±6.30%  ±8.38% ±10.91%
assert/deepequal-object.js method='deepEqual' strict=1 size=100 n=5000                                                                  4.59 %       ±6.39%  ±8.52% ±11.14%
assert/deepequal-object.js method='deepEqual' strict=1 size=50000 n=5000                                                         *     -2.21 %       ±1.96%  ±2.61%  ±3.41%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=1000 n=5000                                                              3.63 %       ±5.76%  ±7.66%  ±9.97%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=100 n=5000                                                              -1.00 %       ±7.19%  ±9.58% ±12.51%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=50000 n=5000                                                             5.81 %       ±7.02%  ±9.35% ±12.19%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=1000 n=5000                                                             -0.28 %       ±7.73% ±10.29% ±13.40%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=100 n=5000                                                               3.98 %       ±7.68% ±10.23% ±13.32%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=50000 n=5000                                                            -3.96 %       ±6.68%  ±8.90% ±11.61%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='array'                     1.62 %       ±5.16%  ±6.87%  ±8.96%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='number'                    4.77 %       ±6.13%  ±8.17% ±10.65%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='object'                    3.37 %       ±4.86%  ±6.47%  ±8.42%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='string'                   -0.36 %       ±5.86%  ±7.79% ±10.15%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='array'                    -0.64 %       ±3.91%  ±5.21%  ±6.80%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='number'                   -1.61 %       ±5.40%  ±7.19%  ±9.37%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='object'                    1.34 %       ±5.23%  ±6.97%  ±9.11%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='string'                   -1.38 %       ±5.47%  ±7.27%  ±9.47%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='array'                *      7.72 %       ±6.68%  ±8.92% ±11.68%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='number'                      2.42 %       ±6.43%  ±8.56% ±11.16%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='object'                      2.18 %       ±5.31%  ±7.07%  ±9.21%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='string'                      4.33 %       ±7.64% ±10.17% ±13.25%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='array'                      -1.66 %       ±5.20%  ±6.93%  ±9.04%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='number'                      4.47 %       ±6.76%  ±9.00% ±11.74%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='object'                     -4.40 %       ±5.44%  ±7.26%  ±9.49%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='string'                      0.30 %       ±5.19%  ±6.91%  ±9.01%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='array'          **      7.71 %       ±5.44%  ±7.25%  ±9.44%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='number'                 0.95 %       ±6.43%  ±8.56% ±11.15%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='object'                 0.87 %       ±6.40%  ±8.52% ±11.10%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='string'                -0.64 %       ±4.03%  ±5.38%  ±7.04%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='array'           *      5.24 %       ±4.29%  ±5.71%  ±7.44%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='number'                -3.27 %       ±5.38%  ±7.20%  ±9.47%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='object'                 2.82 %       ±3.67%  ±4.88%  ±6.36%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='string'                 5.23 %       ±5.55%  ±7.38%  ±9.61%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='array'                    2.03 %       ±6.68%  ±8.90% ±11.60%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='number'                   1.98 %       ±7.21%  ±9.59% ±12.49%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='object'                  -2.20 %       ±7.64% ±10.17% ±13.23%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='string'                  -5.58 %       ±8.02% ±10.67% ±13.90%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='array'                   -2.65 %       ±7.45%  ±9.91% ±12.90%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='number'                  -2.98 %       ±6.07%  ±8.08% ±10.52%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='object'                   2.49 %       ±7.77% ±10.34% ±13.47%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='string'                   0.86 %       ±6.52%  ±8.68% ±11.31%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='array'                                       0.10 %       ±6.75%  ±9.00% ±11.73%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='number'                                     -0.24 %       ±4.96%  ±6.59%  ±8.58%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='object'                                      0.51 %       ±7.41%  ±9.86% ±12.84%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='string'                                     -4.90 %       ±6.61%  ±8.79% ±11.45%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='array'                                      -5.02 %       ±5.94%  ±7.91% ±10.31%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='number'                               *     -7.37 %       ±6.45%  ±8.59% ±11.20%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='object'                                     -2.44 %       ±6.81%  ±9.06% ±11.80%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='string'                                     -2.63 %       ±6.81%  ±9.06% ±11.80%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='array'                                   -4.11 %       ±6.99%  ±9.29% ±12.10%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='number'                                   0.20 %       ±6.54%  ±8.70% ±11.33%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='object'                                  -2.20 %       ±6.62%  ±8.82% ±11.49%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='string'                                  -2.97 %       ±7.16%  ±9.53% ±12.41%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='array'                                   -0.78 %       ±5.92%  ±7.87% ±10.25%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='number'                            *     -6.70 %       ±5.94%  ±7.91% ±10.33%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='object'                            *     -8.86 %       ±7.77% ±10.37% ±13.54%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='string'                                   1.12 %       ±7.34%  ±9.77% ±12.74%
assert/deepequal-set.js method='deepEqual_mixed' strict=0 len=500 n=500                                                                 0.77 %       ±2.16%  ±2.87%  ±3.74%
assert/deepequal-set.js method='deepEqual_mixed' strict=1 len=500 n=500                                                                 0.11 %       ±5.41%  ±7.25%  ±9.54%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=0 len=500 n=500                                                           -0.30 %       ±2.01%  ±2.69%  ±3.54%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=1 len=500 n=500                                                            0.73 %       ±2.81%  ±3.75%  ±4.90%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500                                                         1.14 %       ±5.31%  ±7.07%  ±9.21%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500                                                         3.01 %       ±5.17%  ±6.89%  ±8.98%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=0 len=500 n=500                                                              3.15 %       ±5.67%  ±7.54%  ±9.82%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=1 len=500 n=500                                                              0.10 %       ±5.94%  ±7.91% ±10.29%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500                                                         1.01 %       ±2.30%  ±3.06%  ±3.98%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500                                                         0.64 %       ±2.09%  ±2.78%  ±3.62%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500                                                      1.18 %       ±3.17%  ±4.22%  ±5.49%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500                                                      1.36 %       ±3.74%  ±4.97%  ±6.48%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float32Array'                                           2.96 %       ±6.15%  ±8.19% ±10.69%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float64Array'                                           2.00 %       ±5.67%  ±7.54%  ±9.82%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Int8Array'                                              0.44 %       ±5.61%  ±7.46%  ±9.72%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8Array'                                             0.64 %       ±7.50%  ±9.98% ±13.00%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray'                                     -1.47 %       ±7.73% ±10.31% ±13.46%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float32Array'                                          -0.93 %       ±6.39%  ±8.50% ±11.07%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float64Array'                                           0.32 %       ±7.81% ±10.41% ±13.59%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Int8Array'                                             -5.39 %       ±6.50%  ±8.68% ±11.35%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8Array'                                            -0.72 %       ±8.46% ±11.26% ±14.67%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray'                               *      7.19 %       ±6.45%  ±8.61% ±11.27%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float32Array'                                        3.96 %       ±5.36%  ±7.17%  ±9.43%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float64Array'                                        3.01 %       ±3.70%  ±4.94%  ±6.47%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Int8Array'                                          -0.32 %       ±4.53%  ±6.03%  ±7.87%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8Array'                                          2.76 %       ±7.66% ±10.20% ±13.28%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray'                                  -1.61 %       ±7.42%  ±9.87% ±12.85%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float32Array'                                       -0.39 %       ±7.01%  ±9.34% ±12.17%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float64Array'                                        2.88 %       ±8.01% ±10.67% ±13.91%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Int8Array'                                           0.18 %       ±7.59% ±10.10% ±13.14%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8Array'                                          0.05 %       ±5.65%  ±7.51%  ±9.78%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray'                                  -1.45 %       ±6.85%  ±9.12% ±11.88%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float32Array'                                          3.27 %       ±4.66%  ±6.21%  ±8.08%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float64Array'                                 ***    -13.55 %       ±2.63%  ±3.49%  ±4.55%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Int8Array'                                             5.81 %       ±6.88%  ±9.17% ±11.97%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8Array'                                            2.45 %       ±8.52% ±11.35% ±14.82%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray'                                     1.28 %      ±11.11% ±14.85% ±19.47%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float32Array'                                         -2.75 %       ±7.39%  ±9.83% ±12.80%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float64Array'                                         -0.89 %       ±9.59% ±12.82% ±16.81%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Int8Array'                                             0.45 %       ±4.77%  ±6.34%  ±8.26%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8Array'                                            2.06 %      ±11.76% ±15.69% ±20.51%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray'                                     3.04 %       ±7.91% ±10.55% ±13.78%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float32Array'                                       4.03 %       ±4.71%  ±6.28%  ±8.18%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float64Array'                                       4.72 %       ±5.09%  ±6.78%  ±8.84%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Int8Array'                                         -2.63 %       ±6.12%  ±8.15% ±10.63%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8Array'                                         1.34 %       ±7.38%  ±9.84% ±12.84%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray'                                  3.14 %       ±6.98%  ±9.32% ±12.17%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float32Array'                                       3.68 %       ±6.04%  ±8.04% ±10.46%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float64Array'                                       8.09 %      ±11.32% ±15.17% ±19.97%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Int8Array'                                          1.49 %       ±7.03%  ±9.35% ±12.17%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8Array'                                  *      7.31 %       ±7.13%  ±9.54% ±12.52%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray'                                  1.46 %       ±7.27%  ±9.67% ±12.58%
assert/ok.js n=100000                                                                                                                   1.15 %       ±4.88%  ±6.49%  ±8.47%
assert/throws.js method='doesNotThrow' n=10000                                                                                          1.24 %       ±5.63%  ±7.49%  ±9.75%
assert/throws.js method='throws_RegExp' n=10000                                                                                         1.74 %       ±4.66%  ±6.20%  ±8.08%
assert/throws.js method='throws_TypeError' n=10000                                                                                      3.11 %       ±5.52%  ±7.35%  ±9.57%

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

@qdaoming
Copy link
Contributor Author

qdaoming commented Mar 1, 2022

I have modified the commit message to fix the lint error and now all checks have passed.
Is it ready to be merged into master branch? Thanks.

@nodejs-github-bot
Copy link
Collaborator

@qdaoming
Copy link
Contributor Author

qdaoming commented Mar 17, 2022

For CI tests, this commit passed all of them about 1 weeks ago.
But now there are 4 failures in latest CI tests.
I checked those failures and they seem not to relate with this commit.
Do I need to do some more work for this commit to be merged into master branch?

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot
Copy link
Collaborator

@Trott
Copy link
Member

Trott commented Apr 11, 2022

Is it possible that the consistent failures on fedora-latest-x64 in CI are due to the change in this PR? I'm not seeing it anywhere else, and it's consistent here....

@gengjiawen
Copy link
Member

you can log onto Jenkins as use the "Resume Build" feature.

Thx for the info. I was using retry button. Looks I click the wrong button.

Is it possible that the consistent failures on fedora-latest-x64 in CI are due to the change in this PR?

Old build works fine, not sure why. https://ci.nodejs.org/job/node-test-pull-request/43380/

Looks like something wrong with Jenkins cc @richardlau @nodejs/build

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@richardlau
Copy link
Member

richardlau commented Apr 12, 2022

you can log onto Jenkins as use the "Resume Build" feature.

Thx for the info. I was using retry button. Looks I click the wrong button.

Is it possible that the consistent failures on fedora-latest-x64 in CI are due to the change in this PR?

Old build works fine, not sure why. https://ci.nodejs.org/job/node-test-pull-request/43380/

Looks like something wrong with Jenkins cc @richardlau @nodejs/build

I rebooted test-digitalocean-fedora34-x64-1 and the CI now passes on it 🤷.

@richardlau richardlau added commit-queue Add this label to land a pull request using GitHub Actions. and removed commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. labels Apr 12, 2022
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Apr 12, 2022
@nodejs-github-bot nodejs-github-bot merged commit aa52873 into nodejs:master Apr 12, 2022
@nodejs-github-bot
Copy link
Collaborator

Landed in aa52873

@gengjiawen
Copy link
Member

@qdaoming-intel Thx for the contribution. (sorry the commit-queue mess and take so long to merge)

@qdaoming
Copy link
Contributor Author

@gengjiawen Thank you and all other people's support.

xtx1130 pushed a commit to xtx1130/node that referenced this pull request Apr 25, 2022
Add configure option --v8-enable-short-builtin-calls
and enable it by default on x86_64 platform.

PR-URL: nodejs#42109
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
@juanarbol
Copy link
Member

This commit breaks build/compiling C++ in v16.x, is says something like: v8_enable_short_builtin_calls requires v8_enable_pointer_compression; for some reson, v8_enable_pointer_compression is not true by default in v16.x

@qdaoming
Copy link
Contributor Author

qdaoming commented Jun 2, 2022

This commit breaks build/compiling C++ in v16.x, is says something like: v8_enable_short_builtin_calls requires v8_enable_pointer_compression; for some reson, v8_enable_pointer_compression is not true by default in v16.x

Please don't merge this commit to v16.x, because this commit depends on some new feature in V8, and v16.x doesn't have such feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. performance Issues and PRs related to the performance of Node.js. tools Issues and PRs related to the tools directory. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants