Skip to content

Commit

Permalink
ci: update the core-dump pattern with a path suffix (#6142)
Browse files Browse the repository at this point in the history
* Add manual segfault

* Find all files matching the core pattern

Update core dump path

Update core dump path

Update the core dump file path

Update the core dump file path

Remove node-modules from core dump

Log node features to verify debug is enabled

Revert "Add manual segfault"

This reverts commit 3021866.

Update the path for the core-dump

Add comment for the naming convention

Update the core dump path

Trigger segfault to verify

Update the core path command

Update limit order to be in same task

Run every command in one action

Run every command in one action

Run yarn with a given node binary

Run the tests with sudo

Run the tests with sudo

Change the order of runs for quick feedback

Change the order of runs for quick feedback

Change the order of runs for quick feedback

Copy node for the sudo user

Update the node path

Restructure node debug tasks

Add exec permission to node debug

Revert "Trigger segfault to verify"

This reverts commit 68a3ef0.

* Fix the type check task

* Add comments
  • Loading branch information
nazarhussain authored Nov 30, 2023
1 parent a8e3667 commit bc2ea44
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 39 deletions.
9 changes: 6 additions & 3 deletions .github/actions/core-dump/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@ description: 'List down and upload core dumps as artifacts'
runs:
using: "composite"
steps:
- run: ls -l
- name: List down core dump files
run: |
ls -lah /cores/
sudo chmod -R +rwx /cores/*
shell: sh

- name: Backup core dump
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: core-dump
path: core.*
path: /cores/*
48 changes: 16 additions & 32 deletions .github/actions/setup-debug-node/action.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,23 @@
name: 'Setup node with debug support'
description: 'Setup the nodejs version with debug support'
inputs:
node-version:
description: 'Version of nodejs'
required: true
default: '20'
debug:
description: Enable the debug version
required: true
default: 'false'

name: "Setup node with debug support"
description: "Setup the nodejs version with debug support"
runs:
using: "composite"
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node-version }}
check-latest: true
cache: yarn

# For now we only have the Node 20 debug build
- run: sudo apt-get install unzip && curl -L "https://drive.google.com/uc?export=download&id=1hlhbbQi-NJi8_WjULvOdo-K_tfZFzN3Z&confirm=t" > nodejs.zip && unzip nodejs.zip
shell: sh
if: ${{ inputs.debug == 'true' }}
- run: sudo cp -f node $(which node)
shell: sh
if: ${{ inputs.debug == 'true' }}
- run: sudo sh -c "ulimit -c unlimited"
- run: |
sudo apt-get install unzip && curl -L "https://drive.google.com/uc?export=download&id=1hlhbbQi-NJi8_WjULvOdo-K_tfZFzN3Z&confirm=t" > nodejs.zip && unzip nodejs.zip
sudo cp -f node /usr/bin/node-with-debug
sudo chmod +x /usr/bin/node-with-debug
shell: sh
if: ${{ inputs.debug == 'true' }}
- run: sudo sh -c "echo core > /proc/sys/kernel/core_pattern"
shell: sh
if: ${{ inputs.debug == 'true' }}
- run: echo $(node --print "process.version")
# List of naming patterns
# https://man7.org/linux/man-pages/man5/core.5.html
- run: |
sudo mkdir -p /cores
sudo sh -c "echo /cores/core-%e-%s-%u-%g-%p-%t > /proc/sys/kernel/core_pattern"
shell: sh
- run: echo $(node --print "process.features.debug")
- run: |
echo $(/usr/bin/node-with-debug --print "process.version")
echo $(/usr/bin/node-with-debug --print "process.features.debug")
shell: sh

14 changes: 10 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,14 @@ jobs:
node: [20]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn

# Remove when finished debugging core dumps
- uses: './.github/actions/setup-debug-node'
with:
node-version: ${{matrix.node}}
debug: 'true'

- name: Restore build cache
id: cache-primes-restore
Expand All @@ -181,8 +185,10 @@ jobs:

- name: Unit tests
id: unit_tests
run: yarn test:unit
# Rever to "yarn test:unit" when finished debugging core dumps
run: sudo sh -c "ulimit -c unlimited && /usr/bin/node-with-debug $(which yarn) test:unit"

# Remove when finished debugging core dumps
- uses: './.github/actions/core-dump'
if: ${{ failure() && steps.unit_tests.conclusion == 'failure' }}

Expand Down

1 comment on commit bc2ea44

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: bc2ea44 Previous: a8e3667 Ratio
forkChoice updateHead vc 600000 bc 64 eq 300000 60.356 ms/op 16.191 ms/op 3.73
Full benchmark results
Benchmark suite Current: bc2ea44 Previous: a8e3667 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 593.30 us/op 789.67 us/op 0.75
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 141.39 us/op 135.43 us/op 1.04
BLS verify - blst-native 1.4810 ms/op 1.3324 ms/op 1.11
BLS verifyMultipleSignatures 3 - blst-native 3.0061 ms/op 2.9154 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst-native 6.6630 ms/op 6.1285 ms/op 1.09
BLS verifyMultipleSignatures 32 - blst-native 24.102 ms/op 22.558 ms/op 1.07
BLS verifyMultipleSignatures 64 - blst-native 50.441 ms/op 44.253 ms/op 1.14
BLS verifyMultipleSignatures 128 - blst-native 92.268 ms/op 87.683 ms/op 1.05
BLS deserializing 10000 signatures 955.04 ms/op 965.19 ms/op 0.99
BLS deserializing 100000 signatures 9.3828 s/op 9.2514 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3699 ms/op 1.3577 ms/op 1.01
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5428 ms/op 1.5127 ms/op 1.02
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.3586 ms/op 2.3383 ms/op 1.01
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5941 ms/op 3.5107 ms/op 1.02
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.7125 ms/op 5.6960 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 25.998 us/op 25.908 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 101.97 us/op 101.34 us/op 1.01
getAttestationsForBlock 47.621 ms/op 44.489 ms/op 1.07
isKnown best case - 1 super set check 416.00 ns/op 567.00 ns/op 0.73
isKnown normal case - 2 super set checks 514.00 ns/op 569.00 ns/op 0.90
isKnown worse case - 16 super set checks 490.00 ns/op 474.00 ns/op 1.03
CheckpointStateCache - add get delete 6.5050 us/op 6.0330 us/op 1.08
validate api signedAggregateAndProof - struct 2.9398 ms/op 2.9751 ms/op 0.99
validate gossip signedAggregateAndProof - struct 2.9226 ms/op 2.7765 ms/op 1.05
validate gossip attestation - vc 640000 1.4121 ms/op 1.3671 ms/op 1.03
batch validate gossip attestation - vc 640000 - chunk 32 178.42 us/op 170.22 us/op 1.05
batch validate gossip attestation - vc 640000 - chunk 64 156.63 us/op 153.08 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 128 147.50 us/op 141.49 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 256 148.49 us/op 141.76 us/op 1.05
pickEth1Vote - no votes 1.4263 ms/op 1.3671 ms/op 1.04
pickEth1Vote - max votes 10.919 ms/op 8.7154 ms/op 1.25
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.568 ms/op 22.319 ms/op 0.79
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 28.110 ms/op 32.490 ms/op 0.87
pickEth1Vote - Eth1Data fastSerialize value x2048 742.96 us/op 715.52 us/op 1.04
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.4365 ms/op 5.6348 ms/op 1.32
bytes32 toHexString 604.00 ns/op 554.00 ns/op 1.09
bytes32 Buffer.toString(hex) 313.00 ns/op 285.00 ns/op 1.10
bytes32 Buffer.toString(hex) from Uint8Array 476.00 ns/op 539.00 ns/op 0.88
bytes32 Buffer.toString(hex) + 0x 299.00 ns/op 310.00 ns/op 0.96
Object access 1 prop 0.19200 ns/op 0.20200 ns/op 0.95
Map access 1 prop 0.16300 ns/op 0.15200 ns/op 1.07
Object get x1000 8.2670 ns/op 7.6280 ns/op 1.08
Map get x1000 0.94500 ns/op 0.79900 ns/op 1.18
Object set x1000 76.748 ns/op 61.902 ns/op 1.24
Map set x1000 58.859 ns/op 41.745 ns/op 1.41
Return object 10000 times 0.26650 ns/op 0.24530 ns/op 1.09
Throw Error 10000 times 4.1645 us/op 3.9334 us/op 1.06
fastMsgIdFn sha256 / 200 bytes 3.5120 us/op 3.3790 us/op 1.04
fastMsgIdFn h32 xxhash / 200 bytes 340.00 ns/op 323.00 ns/op 1.05
fastMsgIdFn h64 xxhash / 200 bytes 398.00 ns/op 378.00 ns/op 1.05
fastMsgIdFn sha256 / 1000 bytes 12.024 us/op 11.542 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 506.00 ns/op 466.00 ns/op 1.09
fastMsgIdFn h64 xxhash / 1000 bytes 485.00 ns/op 435.00 ns/op 1.11
fastMsgIdFn sha256 / 10000 bytes 107.85 us/op 104.57 us/op 1.03
fastMsgIdFn h32 xxhash / 10000 bytes 2.1940 us/op 1.9920 us/op 1.10
fastMsgIdFn h64 xxhash / 10000 bytes 1.4740 us/op 1.3470 us/op 1.09
send data - 1000 256B messages 22.692 ms/op 20.730 ms/op 1.09
send data - 1000 512B messages 31.526 ms/op 28.129 ms/op 1.12
send data - 1000 1024B messages 45.175 ms/op 45.312 ms/op 1.00
send data - 1000 1200B messages 40.129 ms/op 34.124 ms/op 1.18
send data - 1000 2048B messages 44.174 ms/op 41.429 ms/op 1.07
send data - 1000 4096B messages 48.901 ms/op 43.069 ms/op 1.14
send data - 1000 16384B messages 109.39 ms/op 106.84 ms/op 1.02
send data - 1000 65536B messages 518.14 ms/op 396.85 ms/op 1.31
enrSubnets - fastDeserialize 64 bits 1.8910 us/op 1.3220 us/op 1.43
enrSubnets - ssz BitVector 64 bits 573.00 ns/op 505.00 ns/op 1.13
enrSubnets - fastDeserialize 4 bits 233.00 ns/op 212.00 ns/op 1.10
enrSubnets - ssz BitVector 4 bits 564.00 ns/op 505.00 ns/op 1.12
prioritizePeers score -10:0 att 32-0.1 sync 2-0 122.89 us/op 109.16 us/op 1.13
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 157.92 us/op 136.65 us/op 1.16
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 217.26 us/op 188.63 us/op 1.15
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 372.05 us/op 295.38 us/op 1.26
prioritizePeers score 0:0 att 64-1 sync 4-1 414.58 us/op 355.96 us/op 1.16
array of 16000 items push then shift 1.9364 us/op 1.6241 us/op 1.19
LinkedList of 16000 items push then shift 11.919 ns/op 8.9640 ns/op 1.33
array of 16000 items push then pop 128.40 ns/op 106.30 ns/op 1.21
LinkedList of 16000 items push then pop 11.271 ns/op 9.2430 ns/op 1.22
array of 24000 items push then shift 2.9344 us/op 2.4294 us/op 1.21
LinkedList of 24000 items push then shift 10.885 ns/op 8.9000 ns/op 1.22
array of 24000 items push then pop 160.40 ns/op 130.65 ns/op 1.23
LinkedList of 24000 items push then pop 9.5150 ns/op 8.9600 ns/op 1.06
intersect bitArray bitLen 8 6.8040 ns/op 6.4660 ns/op 1.05
intersect array and set length 8 87.926 ns/op 68.123 ns/op 1.29
intersect bitArray bitLen 128 49.612 ns/op 33.790 ns/op 1.47
intersect array and set length 128 1.1403 us/op 977.87 ns/op 1.17
bitArray.getTrueBitIndexes() bitLen 128 2.3140 us/op 1.7140 us/op 1.35
bitArray.getTrueBitIndexes() bitLen 248 3.7930 us/op 3.0850 us/op 1.23
bitArray.getTrueBitIndexes() bitLen 512 7.3130 us/op 5.9460 us/op 1.23
Buffer.concat 32 items 1.3460 us/op 1.0420 us/op 1.29
Uint8Array.set 32 items 2.0930 us/op 1.9570 us/op 1.07
Set add up to 64 items then delete first 5.2868 us/op 4.5287 us/op 1.17
OrderedSet add up to 64 items then delete first 7.0016 us/op 5.7220 us/op 1.22
Set add up to 64 items then delete last 5.6931 us/op 4.9975 us/op 1.14
OrderedSet add up to 64 items then delete last 7.4785 us/op 6.5079 us/op 1.15
Set add up to 64 items then delete middle 5.5287 us/op 5.0777 us/op 1.09
OrderedSet add up to 64 items then delete middle 8.8484 us/op 7.1049 us/op 1.25
Set add up to 128 items then delete first 11.369 us/op 9.3394 us/op 1.22
OrderedSet add up to 128 items then delete first 15.279 us/op 12.579 us/op 1.21
Set add up to 128 items then delete last 11.216 us/op 9.8789 us/op 1.14
OrderedSet add up to 128 items then delete last 15.133 us/op 12.265 us/op 1.23
Set add up to 128 items then delete middle 11.127 us/op 10.341 us/op 1.08
OrderedSet add up to 128 items then delete middle 20.909 us/op 20.079 us/op 1.04
Set add up to 256 items then delete first 22.841 us/op 19.885 us/op 1.15
OrderedSet add up to 256 items then delete first 31.941 us/op 26.276 us/op 1.22
Set add up to 256 items then delete last 22.909 us/op 19.616 us/op 1.17
OrderedSet add up to 256 items then delete last 29.334 us/op 23.679 us/op 1.24
Set add up to 256 items then delete middle 22.010 us/op 19.389 us/op 1.14
OrderedSet add up to 256 items then delete middle 53.684 us/op 46.865 us/op 1.15
transfer serialized Status (84 B) 2.2130 us/op 1.8500 us/op 1.20
copy serialized Status (84 B) 1.8280 us/op 1.6740 us/op 1.09
transfer serialized SignedVoluntaryExit (112 B) 2.2490 us/op 2.0620 us/op 1.09
copy serialized SignedVoluntaryExit (112 B) 2.0050 us/op 1.6370 us/op 1.22
transfer serialized ProposerSlashing (416 B) 2.8200 us/op 2.5030 us/op 1.13
copy serialized ProposerSlashing (416 B) 2.6120 us/op 2.4860 us/op 1.05
transfer serialized Attestation (485 B) 2.5030 us/op 2.6150 us/op 0.96
copy serialized Attestation (485 B) 2.2900 us/op 2.1640 us/op 1.06
transfer serialized AttesterSlashing (33232 B) 3.0810 us/op 2.1620 us/op 1.43
copy serialized AttesterSlashing (33232 B) 8.7670 us/op 7.0330 us/op 1.25
transfer serialized Small SignedBeaconBlock (128000 B) 3.5070 us/op 2.5630 us/op 1.37
copy serialized Small SignedBeaconBlock (128000 B) 25.033 us/op 18.214 us/op 1.37
transfer serialized Avg SignedBeaconBlock (200000 B) 4.2600 us/op 3.0140 us/op 1.41
copy serialized Avg SignedBeaconBlock (200000 B) 36.801 us/op 32.136 us/op 1.15
transfer serialized BlobsSidecar (524380 B) 3.8610 us/op 3.1370 us/op 1.23
copy serialized BlobsSidecar (524380 B) 136.22 us/op 82.393 us/op 1.65
transfer serialized Big SignedBeaconBlock (1000000 B) 4.4050 us/op 3.7510 us/op 1.17
copy serialized Big SignedBeaconBlock (1000000 B) 223.32 us/op 153.59 us/op 1.45
pass gossip attestations to forkchoice per slot 4.6896 ms/op 4.4671 ms/op 1.05
forkChoice updateHead vc 100000 bc 64 eq 0 779.16 us/op 757.11 us/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 0 5.7432 ms/op 5.2458 ms/op 1.09
forkChoice updateHead vc 1000000 bc 64 eq 0 8.4529 ms/op 7.6666 ms/op 1.10
forkChoice updateHead vc 600000 bc 320 eq 0 5.1813 ms/op 4.2812 ms/op 1.21
forkChoice updateHead vc 600000 bc 1200 eq 0 5.4361 ms/op 4.3798 ms/op 1.24
forkChoice updateHead vc 600000 bc 7200 eq 0 6.4978 ms/op 5.4559 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 1000 12.977 ms/op 11.163 ms/op 1.16
forkChoice updateHead vc 600000 bc 64 eq 10000 14.990 ms/op 12.013 ms/op 1.25
forkChoice updateHead vc 600000 bc 64 eq 300000 60.356 ms/op 16.191 ms/op 3.73
computeDeltas 500000 validators 300 proto nodes 8.0273 ms/op 6.7494 ms/op 1.19
computeDeltas 500000 validators 1200 proto nodes 7.2555 ms/op 6.6431 ms/op 1.09
computeDeltas 500000 validators 7200 proto nodes 6.9127 ms/op 6.4402 ms/op 1.07
computeDeltas 750000 validators 300 proto nodes 10.515 ms/op 9.5190 ms/op 1.10
computeDeltas 750000 validators 1200 proto nodes 10.522 ms/op 9.6064 ms/op 1.10
computeDeltas 750000 validators 7200 proto nodes 10.146 ms/op 9.5400 ms/op 1.06
computeDeltas 1400000 validators 300 proto nodes 19.334 ms/op 23.195 ms/op 0.83
computeDeltas 1400000 validators 1200 proto nodes 20.893 ms/op 19.665 ms/op 1.06
computeDeltas 1400000 validators 7200 proto nodes 23.093 ms/op 18.705 ms/op 1.23
computeDeltas 2100000 validators 300 proto nodes 32.991 ms/op 28.596 ms/op 1.15
computeDeltas 2100000 validators 1200 proto nodes 34.703 ms/op 28.730 ms/op 1.21
computeDeltas 2100000 validators 7200 proto nodes 35.396 ms/op 28.806 ms/op 1.23
computeProposerBoostScoreFromBalances 500000 validators 4.3397 ms/op 3.8507 ms/op 1.13
computeProposerBoostScoreFromBalances 750000 validators 4.2052 ms/op 3.8070 ms/op 1.10
computeProposerBoostScoreFromBalances 1400000 validators 4.1960 ms/op 3.8474 ms/op 1.09
computeProposerBoostScoreFromBalances 2100000 validators 4.1178 ms/op 3.7977 ms/op 1.08
altair processAttestation - 250000 vs - 7PWei normalcase 3.9416 ms/op 2.7073 ms/op 1.46
altair processAttestation - 250000 vs - 7PWei worstcase 4.8562 ms/op 3.3905 ms/op 1.43
altair processAttestation - setStatus - 1/6 committees join 183.21 us/op 146.77 us/op 1.25
altair processAttestation - setStatus - 1/3 committees join 319.09 us/op 272.08 us/op 1.17
altair processAttestation - setStatus - 1/2 committees join 440.87 us/op 386.85 us/op 1.14
altair processAttestation - setStatus - 2/3 committees join 527.45 us/op 500.28 us/op 1.05
altair processAttestation - setStatus - 4/5 committees join 753.91 us/op 671.92 us/op 1.12
altair processAttestation - setStatus - 100% committees join 991.42 us/op 832.72 us/op 1.19
altair processBlock - 250000 vs - 7PWei normalcase 12.778 ms/op 10.775 ms/op 1.19
altair processBlock - 250000 vs - 7PWei normalcase hashState 37.572 ms/op 37.426 ms/op 1.00
altair processBlock - 250000 vs - 7PWei worstcase 43.953 ms/op 41.501 ms/op 1.06
altair processBlock - 250000 vs - 7PWei worstcase hashState 100.96 ms/op 95.509 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei normalcase 4.1741 ms/op 3.3817 ms/op 1.23
phase0 processBlock - 250000 vs - 7PWei worstcase 37.739 ms/op 32.247 ms/op 1.17
altair processEth1Data - 250000 vs - 7PWei normalcase 784.35 us/op 578.03 us/op 1.36
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 18.926 us/op 12.985 us/op 1.46
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 48.403 us/op 67.942 us/op 0.71
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 39.947 us/op 27.677 us/op 1.44
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 18.798 us/op 14.084 us/op 1.33
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 221.86 us/op 173.41 us/op 1.28
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.8943 ms/op 1.3000 ms/op 1.46
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0499 ms/op 2.1006 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.6927 ms/op 2.0105 ms/op 0.84
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.1374 ms/op 4.1430 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.0218 ms/op 2.7740 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 7.2941 ms/op 5.8137 ms/op 1.25
Tree 40 250000 create 711.41 ms/op 495.34 ms/op 1.44
Tree 40 250000 get(125000) 246.00 ns/op 204.04 ns/op 1.21
Tree 40 250000 set(125000) 2.0483 us/op 965.72 ns/op 2.12
Tree 40 250000 toArray() 32.313 ms/op 21.729 ms/op 1.49
Tree 40 250000 iterate all - toArray() + loop 37.902 ms/op 22.734 ms/op 1.67
Tree 40 250000 iterate all - get(i) 106.44 ms/op 73.966 ms/op 1.44
MutableVector 250000 create 28.162 ms/op 16.233 ms/op 1.73
MutableVector 250000 get(125000) 8.4880 ns/op 6.6560 ns/op 1.28
MutableVector 250000 set(125000) 733.86 ns/op 341.69 ns/op 2.15
MutableVector 250000 toArray() 5.7087 ms/op 5.4052 ms/op 1.06
MutableVector 250000 iterate all - toArray() + loop 6.0844 ms/op 4.8237 ms/op 1.26
MutableVector 250000 iterate all - get(i) 1.6899 ms/op 1.5544 ms/op 1.09
Array 250000 create 5.9480 ms/op 4.3814 ms/op 1.36
Array 250000 clone - spread 2.8278 ms/op 1.3811 ms/op 2.05
Array 250000 get(125000) 2.7620 ns/op 1.2860 ns/op 2.15
Array 250000 set(125000) 6.0110 ns/op 5.4430 ns/op 1.10
Array 250000 iterate all - loop 212.65 us/op 174.80 us/op 1.22
effectiveBalanceIncrements clone Uint8Array 300000 116.58 us/op 53.064 us/op 2.20
effectiveBalanceIncrements clone MutableVector 300000 1.6770 us/op 421.00 ns/op 3.98
effectiveBalanceIncrements rw all Uint8Array 300000 256.98 us/op 206.48 us/op 1.24
effectiveBalanceIncrements rw all MutableVector 300000 253.41 ms/op 109.64 ms/op 2.31
phase0 afterProcessEpoch - 250000 vs - 7PWei 139.66 ms/op 137.78 ms/op 1.01
phase0 beforeProcessEpoch - 250000 vs - 7PWei 74.594 ms/op 55.902 ms/op 1.33
altair processEpoch - mainnet_e81889 739.25 ms/op 879.99 ms/op 0.84
mainnet_e81889 - altair beforeProcessEpoch 115.46 ms/op 163.15 ms/op 0.71
mainnet_e81889 - altair processJustificationAndFinalization 25.513 us/op 33.808 us/op 0.75
mainnet_e81889 - altair processInactivityUpdates 7.0638 ms/op 12.173 ms/op 0.58
mainnet_e81889 - altair processRewardsAndPenalties 89.368 ms/op 85.217 ms/op 1.05
mainnet_e81889 - altair processRegistryUpdates 4.7020 us/op 2.8290 us/op 1.66
mainnet_e81889 - altair processSlashings 1.3500 us/op 628.00 ns/op 2.15
mainnet_e81889 - altair processEth1DataReset 1.1850 us/op 642.00 ns/op 1.85
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4834 ms/op 1.3881 ms/op 1.07
mainnet_e81889 - altair processSlashingsReset 4.8060 us/op 3.7280 us/op 1.29
mainnet_e81889 - altair processRandaoMixesReset 6.8510 us/op 4.4060 us/op 1.55
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0130 us/op 722.00 ns/op 1.40
mainnet_e81889 - altair processParticipationFlagUpdates 3.4650 us/op 2.5950 us/op 1.34
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1450 us/op 1.0380 us/op 1.10
mainnet_e81889 - altair afterProcessEpoch 129.86 ms/op 123.25 ms/op 1.05
capella processEpoch - mainnet_e217614 2.9906 s/op 3.4855 s/op 0.86
mainnet_e217614 - capella beforeProcessEpoch 579.48 ms/op 659.47 ms/op 0.88
mainnet_e217614 - capella processJustificationAndFinalization 20.317 us/op 31.639 us/op 0.64
mainnet_e217614 - capella processInactivityUpdates 23.214 ms/op 32.370 ms/op 0.72
mainnet_e217614 - capella processRewardsAndPenalties 611.90 ms/op 803.58 ms/op 0.76
mainnet_e217614 - capella processRegistryUpdates 28.039 us/op 45.998 us/op 0.61
mainnet_e217614 - capella processSlashings 687.00 ns/op 1.7370 us/op 0.40
mainnet_e217614 - capella processEth1DataReset 484.00 ns/op 1.6300 us/op 0.30
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.4960 ms/op 7.9740 ms/op 0.56
mainnet_e217614 - capella processSlashingsReset 2.8530 us/op 7.1340 us/op 0.40
mainnet_e217614 - capella processRandaoMixesReset 5.6600 us/op 12.806 us/op 0.44
mainnet_e217614 - capella processHistoricalRootsUpdate 563.00 ns/op 1.9640 us/op 0.29
mainnet_e217614 - capella processParticipationFlagUpdates 2.2200 us/op 5.4390 us/op 0.41
mainnet_e217614 - capella afterProcessEpoch 317.42 ms/op 414.79 ms/op 0.77
phase0 processEpoch - mainnet_e58758 430.47 ms/op 805.02 ms/op 0.53
mainnet_e58758 - phase0 beforeProcessEpoch 147.00 ms/op 249.11 ms/op 0.59
mainnet_e58758 - phase0 processJustificationAndFinalization 17.478 us/op 34.853 us/op 0.50
mainnet_e58758 - phase0 processRewardsAndPenalties 52.532 ms/op 68.925 ms/op 0.76
mainnet_e58758 - phase0 processRegistryUpdates 13.287 us/op 21.742 us/op 0.61
mainnet_e58758 - phase0 processSlashings 599.00 ns/op 1.0460 us/op 0.57
mainnet_e58758 - phase0 processEth1DataReset 448.00 ns/op 1.0020 us/op 0.45
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1288 ms/op 1.7131 ms/op 0.66
mainnet_e58758 - phase0 processSlashingsReset 2.4010 us/op 3.3960 us/op 0.71
mainnet_e58758 - phase0 processRandaoMixesReset 4.1560 us/op 4.3570 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 556.00 ns/op 619.00 ns/op 0.90
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.1920 us/op 3.8260 us/op 1.10
mainnet_e58758 - phase0 afterProcessEpoch 106.00 ms/op 104.07 ms/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3483 ms/op 1.7653 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5176 ms/op 2.0759 ms/op 0.73
altair processInactivityUpdates - 250000 normalcase 21.514 ms/op 27.098 ms/op 0.79
altair processInactivityUpdates - 250000 worstcase 25.123 ms/op 28.095 ms/op 0.89
phase0 processRegistryUpdates - 250000 normalcase 13.396 us/op 11.580 us/op 1.16
phase0 processRegistryUpdates - 250000 badcase_full_deposits 448.23 us/op 398.65 us/op 1.12
phase0 processRegistryUpdates - 250000 worstcase 0.5 126.15 ms/op 128.12 ms/op 0.98
altair processRewardsAndPenalties - 250000 normalcase 65.460 ms/op 70.920 ms/op 0.92
altair processRewardsAndPenalties - 250000 worstcase 58.328 ms/op 71.519 ms/op 0.82
phase0 getAttestationDeltas - 250000 normalcase 9.8107 ms/op 12.573 ms/op 0.78
phase0 getAttestationDeltas - 250000 worstcase 8.9436 ms/op 13.015 ms/op 0.69
phase0 processSlashings - 250000 worstcase 2.4726 ms/op 2.3689 ms/op 1.04
altair processSyncCommitteeUpdates - 250000 161.50 ms/op 173.77 ms/op 0.93
BeaconState.hashTreeRoot - No change 261.00 ns/op 308.00 ns/op 0.85
BeaconState.hashTreeRoot - 1 full validator 141.62 us/op 156.75 us/op 0.90
BeaconState.hashTreeRoot - 32 full validator 1.5707 ms/op 1.5770 ms/op 1.00
BeaconState.hashTreeRoot - 512 full validator 15.854 ms/op 14.205 ms/op 1.12
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 172.30 us/op 162.92 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.2687 ms/op 2.2165 ms/op 1.02
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.259 ms/op 32.344 ms/op 0.94
BeaconState.hashTreeRoot - 1 balances 127.89 us/op 146.13 us/op 0.88
BeaconState.hashTreeRoot - 32 balances 1.2105 ms/op 1.6306 ms/op 0.74
BeaconState.hashTreeRoot - 512 balances 10.984 ms/op 17.205 ms/op 0.64
BeaconState.hashTreeRoot - 250000 balances 231.71 ms/op 288.37 ms/op 0.80
aggregationBits - 2048 els - zipIndexesInBitList 19.779 us/op 35.533 us/op 0.56
byteArrayEquals 32 77.819 ns/op 85.411 ns/op 0.91
Buffer.compare 32 57.092 ns/op 60.725 ns/op 0.94
byteArrayEquals 1024 2.0936 us/op 2.1602 us/op 0.97
Buffer.compare 1024 74.416 ns/op 79.367 ns/op 0.94
byteArrayEquals 16384 33.434 us/op 34.448 us/op 0.97
Buffer.compare 16384 267.79 ns/op 284.68 ns/op 0.94
byteArrayEquals 123687377 267.33 ms/op 324.51 ms/op 0.82
Buffer.compare 123687377 9.5022 ms/op 14.438 ms/op 0.66
byteArrayEquals 32 - diff last byte 85.855 ns/op 113.21 ns/op 0.76
Buffer.compare 32 - diff last byte 69.717 ns/op 61.867 ns/op 1.13
byteArrayEquals 1024 - diff last byte 2.6328 us/op 2.0693 us/op 1.27
Buffer.compare 1024 - diff last byte 76.016 ns/op 74.346 ns/op 1.02
byteArrayEquals 16384 - diff last byte 35.482 us/op 37.072 us/op 0.96
Buffer.compare 16384 - diff last byte 275.72 ns/op 255.87 ns/op 1.08
byteArrayEquals 123687377 - diff last byte 325.32 ms/op 247.03 ms/op 1.32
Buffer.compare 123687377 - diff last byte 9.5542 ms/op 7.1877 ms/op 1.33
byteArrayEquals 32 - random bytes 6.8280 ns/op 5.7500 ns/op 1.19
Buffer.compare 32 - random bytes 66.208 ns/op 60.729 ns/op 1.09
byteArrayEquals 1024 - random bytes 6.8110 ns/op 5.8540 ns/op 1.16
Buffer.compare 1024 - random bytes 69.935 ns/op 60.792 ns/op 1.15
byteArrayEquals 16384 - random bytes 6.9480 ns/op 6.0760 ns/op 1.14
Buffer.compare 16384 - random bytes 64.399 ns/op 60.804 ns/op 1.06
byteArrayEquals 123687377 - random bytes 10.470 ns/op 8.6300 ns/op 1.21
Buffer.compare 123687377 - random bytes 78.680 ns/op 72.440 ns/op 1.09
regular array get 100000 times 49.491 us/op 44.662 us/op 1.11
wrappedArray get 100000 times 50.564 us/op 44.693 us/op 1.13
arrayWithProxy get 100000 times 16.549 ms/op 14.709 ms/op 1.13
ssz.Root.equals 58.292 ns/op 57.120 ns/op 1.02
byteArrayEquals 57.342 ns/op 54.754 ns/op 1.05
Buffer.compare 12.948 ns/op 11.598 ns/op 1.12
shuffle list - 16384 els 7.6501 ms/op 7.2316 ms/op 1.06
shuffle list - 250000 els 114.70 ms/op 106.79 ms/op 1.07
processSlot - 1 slots 20.389 us/op 16.151 us/op 1.26
processSlot - 32 slots 3.6990 ms/op 2.9253 ms/op 1.26
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 60.375 ms/op 57.044 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.6052 ms/op 2.5773 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.9621 ms/op 3.7971 ms/op 1.04
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3371 ms/op 4.2201 ms/op 1.03
findModifiedValidators - 10000 modified validators 668.68 ms/op 538.00 ms/op 1.24
findModifiedValidators - 1000 modified validators 476.75 ms/op 487.86 ms/op 0.98
findModifiedValidators - 100 modified validators 601.93 ms/op 458.12 ms/op 1.31
findModifiedValidators - 10 modified validators 469.45 ms/op 449.54 ms/op 1.04
findModifiedValidators - 1 modified validators 435.54 ms/op 428.34 ms/op 1.02
findModifiedValidators - no difference 473.27 ms/op 409.39 ms/op 1.16
compare ViewDUs 4.6634 s/op 4.9502 s/op 0.94
compare each validator Uint8Array 1.5323 s/op 2.2739 s/op 0.67
compare ViewDU to Uint8Array 1.4642 s/op 2.0949 s/op 0.70
migrate state 1000000 validators, 24 modified, 0 new 915.77 ms/op 1.5882 s/op 0.58
migrate state 1000000 validators, 1700 modified, 1000 new 1.1339 s/op 1.2854 s/op 0.88
migrate state 1000000 validators, 3400 modified, 2000 new 1.5483 s/op 1.4519 s/op 1.07
migrate state 1500000 validators, 24 modified, 0 new 908.36 ms/op 973.82 ms/op 0.93
migrate state 1500000 validators, 1700 modified, 1000 new 1.3151 s/op 1.2887 s/op 1.02
migrate state 1500000 validators, 3400 modified, 2000 new 1.6377 s/op 1.5474 s/op 1.06
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.4700 ns/op 4.6500 ns/op 1.39
state getBlockRootAtSlot - 250000 vs - 7PWei 768.10 ns/op 627.75 ns/op 1.22
computeProposers - vc 250000 11.703 ms/op 10.036 ms/op 1.17
computeEpochShuffling - vc 250000 115.37 ms/op 107.35 ms/op 1.07
getNextSyncCommittee - vc 250000 193.28 ms/op 170.04 ms/op 1.14
computeSigningRoot for AttestationData 34.732 us/op 27.117 us/op 1.28
hash AttestationData serialized data then Buffer.toString(base64) 2.5451 us/op 2.3759 us/op 1.07
toHexString serialized data 1.2932 us/op 1.1536 us/op 1.12
Buffer.toString(base64) 282.82 ns/op 222.63 ns/op 1.27

Please sign in to comment.