Skip to content

Conversation

@wemeetagain
Copy link
Member

@wemeetagain wemeetagain commented Aug 22, 2025

🤖 I have created a release beep boop

persistent-ts: 2.0.0

2.0.0 (2025-08-25)

⚠ BREAKING CHANGES

  • remove support for CJS (#440)

Features

Bug Fixes

  • persistent-ts: empty commit to trigger release from package.json fix (#446) (825d530)
  • ssz: empty commit to trigger release from package.json fix (#445) (f5417f5)

Miscellaneous


This PR was generated with Release Please. See documentation.

@github-actions
Copy link

github-actions bot commented Aug 22, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 53a499c Previous: 7f5580c Ratio
digestTwoHashObjects 50023 times 47.935 ms/op 48.190 ms/op 0.99
digest2Bytes32 50023 times 54.251 ms/op 55.701 ms/op 0.97
digest 50023 times 52.587 ms/op 53.378 ms/op 0.99
input length 32 1.1850 us/op 1.1970 us/op 0.99
input length 64 1.3440 us/op 1.3530 us/op 0.99
input length 128 2.3240 us/op 2.3350 us/op 1.00
input length 256 3.4160 us/op 3.4560 us/op 0.99
input length 512 5.7400 us/op 5.7640 us/op 1.00
input length 1024 10.883 us/op 10.828 us/op 1.01
digest 1000000 times 856.14 ms/op 851.86 ms/op 1.01
hashObjectToByteArray 50023 times 938.99 us/op 937.20 us/op 1.00
byteArrayToHashObject 50023 times 1.3036 ms/op 1.3088 ms/op 1.00
digest64 200092 times 211.76 ms/op 215.58 ms/op 0.98
hash 200092 times using batchHash4UintArray64s 236.14 ms/op 230.80 ms/op 1.02
digest64HashObjects 200092 times 189.55 ms/op 191.43 ms/op 0.99
hash 200092 times using batchHash4HashObjectInputs 201.65 ms/op 198.54 ms/op 1.02
getGindicesAtDepth 3.5990 us/op 3.6320 us/op 0.99
iterateAtDepth 6.4020 us/op 6.4330 us/op 1.00
getGindexBits 435.00 ns/op 441.00 ns/op 0.99
gindexIterator 892.00 ns/op 902.00 ns/op 0.99
HashComputationLevel.push then loop 27.014 ms/op 26.098 ms/op 1.04
HashComputation[] push then loop 50.003 ms/op 47.646 ms/op 1.05
hash 2 32 bytes Uint8Array 500000 times - hashtree 147.46 ms/op 146.96 ms/op 1.00
batch hash 16 x 64 Uint8Array 31250 times - hashtree 26.849 ms/op 24.511 ms/op 1.10
hashTwoObjects 500000 times - hashtree 163.81 ms/op 164.29 ms/op 1.00
executeHashComputations - hashtree 9.9721 ms/op 9.1375 ms/op 1.09
hash 2 32 bytes Uint8Array 500000 times - as-sha256 980.83 ms/op 490.28 ms/op 2.00
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 565.94 ms/op 518.62 ms/op 1.09
hashTwoObjects 500000 times - as-sha256 1.0490 s/op 505.97 ms/op 2.07
executeHashComputations - as-sha256 50.181 ms/op 43.679 ms/op 1.15
hash 2 32 bytes Uint8Array 500000 times - noble 1.2875 s/op 1.2312 s/op 1.05
batch hash 16 x 64 Uint8Array 31250 times - noble 1.2639 s/op 1.1810 s/op 1.07
hashTwoObjects 500000 times - noble 1.6949 s/op 1.5427 s/op 1.10
executeHashComputations - noble 40.472 ms/op 36.224 ms/op 1.12
getHashComputations 2.4450 ms/op 2.3532 ms/op 1.04
executeHashComputations 10.933 ms/op 8.9486 ms/op 1.22
get root 12.331 ms/op 12.151 ms/op 1.01
getNodeH() x7812.5 avg hindex 12.337 us/op 12.044 us/op 1.02
getNodeH() x7812.5 index 0 7.5370 us/op 7.5480 us/op 1.00
getNodeH() x7812.5 index 7 7.4800 us/op 7.4780 us/op 1.00
getNodeH() x7812.5 index 7 with key array 6.4020 us/op 6.4380 us/op 0.99
new LeafNode() x7812.5 338.83 us/op 308.35 us/op 1.10
getHashComputations 250000 nodes 14.864 ms/op 14.886 ms/op 1.00
batchHash 250000 nodes 91.899 ms/op 87.862 ms/op 1.05
get root 250000 nodes 91.923 ms/op 91.263 ms/op 1.01
getHashComputations 500000 nodes 28.426 ms/op 28.213 ms/op 1.01
batchHash 500000 nodes 151.42 ms/op 150.27 ms/op 1.01
get root 500000 nodes 184.94 ms/op 181.45 ms/op 1.02
getHashComputations 1000000 nodes 62.065 ms/op 55.266 ms/op 1.12
batchHash 1000000 nodes 324.03 ms/op 337.47 ms/op 0.96
get root 1000000 nodes 380.32 ms/op 374.83 ms/op 1.01
multiproof - depth 15, 1 requested leaves 9.0290 us/op 7.7640 us/op 1.16
tree offset multiproof - depth 15, 1 requested leaves 17.173 us/op 17.414 us/op 0.99
compact multiproof - depth 15, 1 requested leaves 3.3680 us/op 3.5970 us/op 0.94
multiproof - depth 15, 2 requested leaves 11.155 us/op 11.502 us/op 0.97
tree offset multiproof - depth 15, 2 requested leaves 20.584 us/op 21.008 us/op 0.98
compact multiproof - depth 15, 2 requested leaves 4.3180 us/op 3.3690 us/op 1.28
multiproof - depth 15, 3 requested leaves 16.156 us/op 15.834 us/op 1.02
tree offset multiproof - depth 15, 3 requested leaves 29.329 us/op 26.930 us/op 1.09
compact multiproof - depth 15, 3 requested leaves 3.8410 us/op 4.0250 us/op 0.95
multiproof - depth 15, 4 requested leaves 20.902 us/op 21.233 us/op 0.98
tree offset multiproof - depth 15, 4 requested leaves 36.137 us/op 33.884 us/op 1.07
compact multiproof - depth 15, 4 requested leaves 4.5790 us/op 4.0360 us/op 1.13
packedRootsBytesToLeafNodes bytes 4000 offset 0 6.6390 us/op 5.7160 us/op 1.16
packedRootsBytesToLeafNodes bytes 4000 offset 1 6.6160 us/op 5.9350 us/op 1.11
packedRootsBytesToLeafNodes bytes 4000 offset 2 6.4220 us/op 5.7620 us/op 1.11
packedRootsBytesToLeafNodes bytes 4000 offset 3 6.4210 us/op 5.7520 us/op 1.12
subtreeFillToContents depth 40 count 250000 47.331 ms/op 48.649 ms/op 0.97
setRoot - gindexBitstring 24.095 ms/op 20.208 ms/op 1.19
setRoot - gindex 22.379 ms/op 20.336 ms/op 1.10
getRoot - gindexBitstring 2.9722 ms/op 2.3656 ms/op 1.26
getRoot - gindex 3.4853 ms/op 3.0761 ms/op 1.13
getHashObject then setHashObject 27.792 ms/op 22.569 ms/op 1.23
setNodeWithFn 21.205 ms/op 18.894 ms/op 1.12
getNodeAtDepth depth 0 x100000 280.78 us/op 280.71 us/op 1.00
setNodeAtDepth depth 0 x100000 2.5208 ms/op 2.2554 ms/op 1.12
getNodesAtDepth depth 0 x100000 312.31 us/op 312.44 us/op 1.00
setNodesAtDepth depth 0 x100000 762.83 us/op 888.65 us/op 0.86
getNodeAtDepth depth 1 x100000 342.05 us/op 342.17 us/op 1.00
setNodeAtDepth depth 1 x100000 7.9666 ms/op 7.4786 ms/op 1.07
getNodesAtDepth depth 1 x100000 435.94 us/op 436.36 us/op 1.00
setNodesAtDepth depth 1 x100000 6.8301 ms/op 6.4007 ms/op 1.07
getNodeAtDepth depth 2 x100000 848.92 us/op 760.36 us/op 1.12
setNodeAtDepth depth 2 x100000 20.756 ms/op 14.330 ms/op 1.45
getNodesAtDepth depth 2 x100000 22.120 ms/op 18.084 ms/op 1.22
setNodesAtDepth depth 2 x100000 27.038 ms/op 21.401 ms/op 1.26
tree.getNodesAtDepth - gindexes 8.7324 ms/op 8.2011 ms/op 1.06
tree.getNodesAtDepth - push all nodes 2.4391 ms/op 1.8670 ms/op 1.31
tree.getNodesAtDepth - navigation 311.81 us/op 311.87 us/op 1.00
tree.setNodesAtDepth - indexes 715.68 us/op 633.37 us/op 1.13
set at depth 8 929.00 ns/op 784.00 ns/op 1.18
set at depth 16 1.0450 us/op 1.0230 us/op 1.02
set at depth 32 2.4610 us/op 1.8730 us/op 1.31
iterateNodesAtDepth 8 256 14.637 us/op 13.181 us/op 1.11
getNodesAtDepth 8 256 3.6970 us/op 3.6480 us/op 1.01
iterateNodesAtDepth 16 65536 4.6589 ms/op 4.3650 ms/op 1.07
getNodesAtDepth 16 65536 1.2163 ms/op 1.1395 ms/op 1.07
iterateNodesAtDepth 32 250000 17.360 ms/op 15.916 ms/op 1.09
getNodesAtDepth 32 250000 5.0720 ms/op 4.5080 ms/op 1.13
iterateNodesAtDepth 40 250000 17.300 ms/op 15.770 ms/op 1.10
getNodesAtDepth 40 250000 5.3395 ms/op 4.5316 ms/op 1.18
250000 validators root getter 93.112 ms/op 94.698 ms/op 0.98
250000 validators batchHash() 110.36 ms/op 89.668 ms/op 1.23
250000 validators hashComputations 16.710 ms/op 15.712 ms/op 1.06
bitlist bytes to struct (120,90) 559.00 ns/op 558.00 ns/op 1.00
bitlist bytes to tree (120,90) 2.2520 us/op 2.2640 us/op 0.99
bitlist bytes to struct (2048,2048) 917.00 ns/op 898.00 ns/op 1.02
bitlist bytes to tree (2048,2048) 3.6650 us/op 3.4680 us/op 1.06
ByteListType - deserialize 9.0827 ms/op 9.4935 ms/op 0.96
BasicListType - deserialize 10.838 ms/op 9.9673 ms/op 1.09
ByteListType - serialize 10.184 ms/op 9.5271 ms/op 1.07
BasicListType - serialize 10.762 ms/op 11.928 ms/op 0.90
BasicListType - tree_convertToStruct 23.188 ms/op 21.471 ms/op 1.08
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.7085 ms/op 5.3298 ms/op 0.88
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.6072 ms/op 4.3888 ms/op 1.05
Array.push len 300000 empty Array - number 6.1690 ms/op 6.8916 ms/op 0.90
Array.set len 300000 from new Array - number 2.3837 ms/op 1.7659 ms/op 1.35
Array.set len 300000 - number 7.0699 ms/op 5.7140 ms/op 1.24
Uint8Array.set len 300000 413.11 us/op 383.00 us/op 1.08
Uint32Array.set len 300000 557.76 us/op 456.62 us/op 1.22
Container({a: uint8, b: uint8}) getViewDU x300000 33.635 ms/op 28.862 ms/op 1.17
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 11.329 ms/op 10.531 ms/op 1.08
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 216.35 ms/op 208.89 ms/op 1.04
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 285.49 ms/op 234.33 ms/op 1.22
List(Container) len 300000 ViewDU.get(i) 7.3922 ms/op 6.5948 ms/op 1.12
List(Container) len 300000 ViewDU.getReadonly(i) 6.6972 ms/op 6.5451 ms/op 1.02
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 36.927 ms/op 36.448 ms/op 1.01
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.0984 ms/op 5.3517 ms/op 0.95
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.1540 ms/op 6.1686 ms/op 1.00
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 6.2559 ms/op 6.2692 ms/op 1.00
Array.push len 300000 empty Array - object 6.6226 ms/op 6.4726 ms/op 1.02
Array.set len 300000 from new Array - object 2.0381 ms/op 2.0467 ms/op 1.00
Array.set len 300000 - object 6.2871 ms/op 6.2633 ms/op 1.00
cachePermanentRootStruct no cache 3.3270 us/op 3.1640 us/op 1.05
cachePermanentRootStruct with cache 186.00 ns/op 186.00 ns/op 1.00
epochParticipation len 250000 rws 7813 2.3722 ms/op 2.3874 ms/op 0.99
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 4.7991 ms/op 4.7199 ms/op 1.02
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 221.87 ms/op 213.63 ms/op 1.04
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 186.44 ms/op 180.52 ms/op 1.03
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 51.366 ms/op 47.817 ms/op 1.07
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 713.64 ms/op 701.72 ms/op 1.02
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 70.728 ms/op 64.961 ms/op 1.09
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 272.55 ms/op 271.08 ms/op 1.01
deserialize Attestation - tree 3.9370 us/op 3.6980 us/op 1.06
deserialize Attestation - struct 1.9630 us/op 1.9670 us/op 1.00
deserialize SignedAggregateAndProof - tree 4.7240 us/op 4.9070 us/op 0.96
deserialize SignedAggregateAndProof - struct 3.3310 us/op 3.0410 us/op 1.10
deserialize SyncCommitteeMessage - tree 1.6480 us/op 1.5260 us/op 1.08
deserialize SyncCommitteeMessage - struct 1.1660 us/op 1.1650 us/op 1.00
deserialize SignedContributionAndProof - tree 3.2210 us/op 2.8900 us/op 1.11
deserialize SignedContributionAndProof - struct 2.8740 us/op 2.4160 us/op 1.19
deserialize SignedBeaconBlock - tree 319.67 us/op 283.97 us/op 1.13
deserialize SignedBeaconBlock - struct 123.29 us/op 117.38 us/op 1.05
BeaconState vc 300000 - deserialize tree 657.94 ms/op 629.34 ms/op 1.05
BeaconState vc 300000 - serialize tree 75.038 ms/op 105.94 ms/op 0.71
BeaconState.historicalRoots vc 300000 - deserialize tree 911.00 ns/op 997.00 ns/op 0.91
BeaconState.historicalRoots vc 300000 - serialize tree 800.00 ns/op 678.00 ns/op 1.18
BeaconState.validators vc 300000 - deserialize tree 633.80 ms/op 611.03 ms/op 1.04
BeaconState.validators vc 300000 - serialize tree 34.536 ms/op 32.923 ms/op 1.05
BeaconState.balances vc 300000 - deserialize tree 28.169 ms/op 28.280 ms/op 1.00
BeaconState.balances vc 300000 - serialize tree 4.5429 ms/op 3.9668 ms/op 1.15
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 955.62 us/op 1.0094 ms/op 0.95
BeaconState.previousEpochParticipation vc 300000 - serialize tree 325.99 us/op 327.38 us/op 1.00
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 996.33 us/op 1.0154 ms/op 0.98
BeaconState.currentEpochParticipation vc 300000 - serialize tree 326.89 us/op 325.88 us/op 1.00
BeaconState.inactivityScores vc 300000 - deserialize tree 26.663 ms/op 25.286 ms/op 1.05
BeaconState.inactivityScores vc 300000 - serialize tree 4.3897 ms/op 3.8505 ms/op 1.14
hashTreeRoot Attestation - struct 9.7550 us/op 9.3840 us/op 1.04
hashTreeRoot Attestation - tree 7.3000 us/op 7.4360 us/op 0.98
hashTreeRoot SignedAggregateAndProof - struct 12.451 us/op 12.235 us/op 1.02
hashTreeRoot SignedAggregateAndProof - tree 10.759 us/op 10.949 us/op 0.98
hashTreeRoot SyncCommitteeMessage - struct 3.1520 us/op 3.1110 us/op 1.01
hashTreeRoot SyncCommitteeMessage - tree 2.8130 us/op 2.7860 us/op 1.01
hashTreeRoot SignedContributionAndProof - struct 7.9320 us/op 7.3990 us/op 1.07
hashTreeRoot SignedContributionAndProof - tree 7.4190 us/op 7.5490 us/op 0.98
hashTreeRoot SignedBeaconBlock - struct 785.60 us/op 714.10 us/op 1.10
hashTreeRoot SignedBeaconBlock - tree 649.26 us/op 663.99 us/op 0.98
hashTreeRoot Validator - struct 4.4880 us/op 4.3710 us/op 1.03
hashTreeRoot Validator - tree 5.6810 us/op 5.7160 us/op 0.99
BeaconState vc 300000 - hashTreeRoot tree 2.0069 s/op 2.0179 s/op 0.99
BeaconState vc 300000 - batchHashTreeRoot tree 3.9665 s/op 3.9309 s/op 1.01
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 885.00 ns/op 852.00 ns/op 1.04
BeaconState.validators vc 300000 - hashTreeRoot tree 2.2441 s/op 2.1653 s/op 1.04
BeaconState.balances vc 300000 - hashTreeRoot tree 27.517 ms/op 27.897 ms/op 0.99
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 3.4114 ms/op 3.4708 ms/op 0.98
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 3.4163 ms/op 3.4667 ms/op 0.99
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 40.713 ms/op 27.772 ms/op 1.47
hash64 x18 8.2650 us/op 7.7540 us/op 1.07
hashTwoObjects x18 6.6450 us/op 6.4950 us/op 1.02
hash64 x1740 724.21 us/op 662.69 us/op 1.09
hashTwoObjects x1740 586.79 us/op 584.68 us/op 1.00
hash64 x2700000 1.0890 s/op 995.69 ms/op 1.09
hashTwoObjects x2700000 912.23 ms/op 910.98 ms/op 1.00
get_exitEpoch - ContainerType 288.00 ns/op 243.00 ns/op 1.19
get_exitEpoch - ContainerNodeStructType 286.00 ns/op 260.00 ns/op 1.10
set_exitEpoch - ContainerType 292.00 ns/op 251.00 ns/op 1.16
set_exitEpoch - ContainerNodeStructType 290.00 ns/op 236.00 ns/op 1.23
get_pubkey - ContainerType 988.00 ns/op 935.00 ns/op 1.06
get_pubkey - ContainerNodeStructType 324.00 ns/op 227.00 ns/op 1.43
hashTreeRoot - ContainerType 494.00 ns/op 467.00 ns/op 1.06
hashTreeRoot - ContainerNodeStructType 579.00 ns/op 458.00 ns/op 1.26
createProof - ContainerType 4.2890 us/op 3.5940 us/op 1.19
createProof - ContainerNodeStructType 23.334 us/op 19.945 us/op 1.17
serialize - ContainerType 1.8750 us/op 1.6990 us/op 1.10
serialize - ContainerNodeStructType 1.3180 us/op 1.1520 us/op 1.14
set_exitEpoch_and_hashTreeRoot - ContainerType 2.5740 us/op 2.5450 us/op 1.01
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 7.0200 us/op 6.4140 us/op 1.09
doBatchHashTreeRootValidators 3.6310 us/op 3.5620 us/op 1.02
ContainerNodeStructViewDU hashTreeRoot 23.340 us/op 22.103 us/op 1.06
Array - for of 6.9670 us/op 10.627 us/op 0.66
Array - for(;;) 6.9290 us/op 10.567 us/op 0.66
basicListValue.readonlyValuesArray() 4.6271 ms/op 4.4933 ms/op 1.03
basicListValue.readonlyValuesArray() + loop all 5.4820 ms/op 4.6712 ms/op 1.17
compositeListValue.readonlyValuesArray() 27.683 ms/op 29.964 ms/op 0.92
compositeListValue.readonlyValuesArray() + loop all 29.244 ms/op 30.799 ms/op 0.95
Number64UintType - get balances list 5.1292 ms/op 4.5386 ms/op 1.13
Number64UintType - set balances list 10.252 ms/op 9.9799 ms/op 1.03
Number64UintType - get and increase 10 then set 43.137 ms/op 41.072 ms/op 1.05
Number64UintType - increase 10 using applyDelta 18.161 ms/op 17.383 ms/op 1.04
Number64UintType - increase 10 using applyDeltaInBatch 17.386 ms/op 18.718 ms/op 0.93
tree_newTreeFromUint64Deltas 22.523 ms/op 22.175 ms/op 1.02
unsafeUint8ArrayToTree 37.268 ms/op 35.680 ms/op 1.04
bitLength(50) 264.00 ns/op 245.00 ns/op 1.08
bitLengthStr(50) 237.00 ns/op 225.00 ns/op 1.05
bitLength(8000) 268.00 ns/op 244.00 ns/op 1.10
bitLengthStr(8000) 316.00 ns/op 295.00 ns/op 1.07
bitLength(250000) 253.00 ns/op 236.00 ns/op 1.07
bitLengthStr(250000) 355.00 ns/op 308.00 ns/op 1.15
merkleize 32 chunks 12.656 us/op 12.454 us/op 1.02
merkleizeBlocksBytes 32 chunks 3.0890 us/op 3.0590 us/op 1.01
merkleizeBlockArray 32 chunks 6.0950 us/op 6.2340 us/op 0.98
merkleize 128 chunks 51.527 us/op 48.902 us/op 1.05
merkleizeBlocksBytes 128 chunks 7.2390 us/op 7.1610 us/op 1.01
merkleizeBlockArray 128 chunks 17.526 us/op 17.304 us/op 1.01
merkleize 512 chunks 195.74 us/op 189.23 us/op 1.03
merkleizeBlocksBytes 512 chunks 22.660 us/op 22.816 us/op 0.99
merkleizeBlockArray 512 chunks 63.470 us/op 61.385 us/op 1.03
merkleize 1024 chunks 419.73 us/op 382.61 us/op 1.10
merkleizeBlocksBytes 1024 chunks 42.163 us/op 42.173 us/op 1.00
merkleizeBlockArray 1024 chunks 122.04 us/op 116.17 us/op 1.05
floor - Math.floor (53) 1.2433 ns/op 1.2435 ns/op 1.00
floor - << 0 (53) 1.2438 ns/op 1.2457 ns/op 1.00
floor - Math.floor (512) 1.2457 ns/op 1.2436 ns/op 1.00
floor - << 0 (512) 1.2438 ns/op 1.2458 ns/op 1.00
fnIf(0) 1.5640 ns/op 1.5553 ns/op 1.01
fnSwitch(0) 2.1763 ns/op 2.1930 ns/op 0.99
fnObj(0) 1.5602 ns/op 1.5671 ns/op 1.00
fnArr(0) 1.5545 ns/op 1.5556 ns/op 1.00
fnIf(4) 2.1748 ns/op 2.1792 ns/op 1.00
fnSwitch(4) 2.1774 ns/op 2.1774 ns/op 1.00
fnObj(4) 1.5615 ns/op 1.5590 ns/op 1.00
fnArr(4) 1.5545 ns/op 1.5558 ns/op 1.00
fnIf(9) 3.1090 ns/op 3.1081 ns/op 1.00
fnSwitch(9) 2.1779 ns/op 2.1764 ns/op 1.00
fnObj(9) 1.5659 ns/op 1.5801 ns/op 0.99
fnArr(9) 1.5550 ns/op 1.5545 ns/op 1.00
Container {a,b,vec} - as struct x100000 124.88 us/op 124.58 us/op 1.00
Container {a,b,vec} - as tree x100000 558.29 us/op 559.68 us/op 1.00
Container {a,vec,b} - as struct x100000 155.59 us/op 155.73 us/op 1.00
Container {a,vec,b} - as tree x100000 560.71 us/op 560.01 us/op 1.00
get 2 props x1000000 - rawObject 312.27 us/op 311.39 us/op 1.00
get 2 props x1000000 - proxy 73.052 ms/op 73.097 ms/op 1.00
get 2 props x1000000 - customObj 312.30 us/op 314.00 us/op 0.99
Simple object binary -> struct 637.00 ns/op 644.00 ns/op 0.99
Simple object binary -> tree_backed 1.7850 us/op 1.7090 us/op 1.04
Simple object struct -> tree_backed 2.3110 us/op 2.2400 us/op 1.03
Simple object tree_backed -> struct 1.6180 us/op 1.5990 us/op 1.01
Simple object struct -> binary 928.00 ns/op 897.00 ns/op 1.03
Simple object tree_backed -> binary 1.2280 us/op 1.3310 us/op 0.92
aggregationBits binary -> struct 483.00 ns/op 623.00 ns/op 0.78
aggregationBits binary -> tree_backed 2.2480 us/op 2.1420 us/op 1.05
aggregationBits struct -> tree_backed 2.5490 us/op 2.5160 us/op 1.01
aggregationBits tree_backed -> struct 934.00 ns/op 938.00 ns/op 1.00
aggregationBits struct -> binary 720.00 ns/op 731.00 ns/op 0.98
aggregationBits tree_backed -> binary 919.00 ns/op 844.00 ns/op 1.09
List(uint8) 100000 binary -> struct 875.48 us/op 1.0501 ms/op 0.83
List(uint8) 100000 binary -> tree_backed 349.06 us/op 267.64 us/op 1.30
List(uint8) 100000 struct -> tree_backed 1.4096 ms/op 1.3410 ms/op 1.05
List(uint8) 100000 tree_backed -> struct 986.77 us/op 998.24 us/op 0.99
List(uint8) 100000 struct -> binary 1.0314 ms/op 1.0692 ms/op 0.96
List(uint8) 100000 tree_backed -> binary 112.08 us/op 108.12 us/op 1.04
List(uint64Number) 100000 binary -> struct 1.3703 ms/op 1.2923 ms/op 1.06
List(uint64Number) 100000 binary -> tree_backed 4.9220 ms/op 4.8386 ms/op 1.02
List(uint64Number) 100000 struct -> tree_backed 6.3663 ms/op 6.6501 ms/op 0.96
List(uint64Number) 100000 tree_backed -> struct 2.3986 ms/op 2.4660 ms/op 0.97
List(uint64Number) 100000 struct -> binary 1.4315 ms/op 1.4565 ms/op 0.98
List(uint64Number) 100000 tree_backed -> binary 1.2072 ms/op 1.0716 ms/op 1.13
List(Uint64Bigint) 100000 binary -> struct 3.9917 ms/op 3.9628 ms/op 1.01
List(Uint64Bigint) 100000 binary -> tree_backed 5.4016 ms/op 4.5365 ms/op 1.19
List(Uint64Bigint) 100000 struct -> tree_backed 7.3047 ms/op 7.3265 ms/op 1.00
List(Uint64Bigint) 100000 tree_backed -> struct 5.9284 ms/op 4.7508 ms/op 1.25
List(Uint64Bigint) 100000 struct -> binary 2.2140 ms/op 2.1112 ms/op 1.05
List(Uint64Bigint) 100000 tree_backed -> binary 1.1536 ms/op 1.1139 ms/op 1.04
Vector(Root) 100000 binary -> struct 32.970 ms/op 34.378 ms/op 0.96
Vector(Root) 100000 binary -> tree_backed 39.891 ms/op 34.819 ms/op 1.15
Vector(Root) 100000 struct -> tree_backed 51.197 ms/op 50.652 ms/op 1.01
Vector(Root) 100000 tree_backed -> struct 48.377 ms/op 48.740 ms/op 0.99
Vector(Root) 100000 struct -> binary 3.5919 ms/op 3.1117 ms/op 1.15
Vector(Root) 100000 tree_backed -> binary 6.8644 ms/op 6.7232 ms/op 1.02
List(Validator) 100000 binary -> struct 107.54 ms/op 103.22 ms/op 1.04
List(Validator) 100000 binary -> tree_backed 364.15 ms/op 327.89 ms/op 1.11
List(Validator) 100000 struct -> tree_backed 382.14 ms/op 370.68 ms/op 1.03
List(Validator) 100000 tree_backed -> struct 207.22 ms/op 209.72 ms/op 0.99
List(Validator) 100000 struct -> binary 31.469 ms/op 29.921 ms/op 1.05
List(Validator) 100000 tree_backed -> binary 106.81 ms/op 112.02 ms/op 0.95
List(Validator-NS) 100000 binary -> struct 116.54 ms/op 99.586 ms/op 1.17
List(Validator-NS) 100000 binary -> tree_backed 155.58 ms/op 140.81 ms/op 1.10
List(Validator-NS) 100000 struct -> tree_backed 186.27 ms/op 185.05 ms/op 1.01
List(Validator-NS) 100000 tree_backed -> struct 149.83 ms/op 150.59 ms/op 0.99
List(Validator-NS) 100000 struct -> binary 9.1438 ms/op 8.2149 ms/op 1.11
List(Validator-NS) 100000 tree_backed -> binary 12.786 ms/op 14.183 ms/op 0.90
get epochStatuses - MutableVector 100.93 us/op 93.648 us/op 1.08
get epochStatuses - ViewDU 210.58 us/op 206.80 us/op 1.02
set epochStatuses - ListTreeView 2.1561 ms/op 2.1710 ms/op 0.99
set epochStatuses - ListTreeView - set() 440.97 us/op 442.89 us/op 1.00
set epochStatuses - ListTreeView - commit() 813.23 us/op 812.31 us/op 1.00
bitstring 515.76 ns/op 514.97 ns/op 1.00
bit mask 14.149 ns/op 13.904 ns/op 1.02
struct - increase slot to 1000000 936.66 us/op 933.50 us/op 1.00
UintNumberType - increase slot to 1000000 27.791 ms/op 27.723 ms/op 1.00
UintBigintType - increase slot to 1000000 187.24 ms/op 186.22 ms/op 1.01
UintBigint8 x 100000 tree_deserialize 5.3593 ms/op 5.3073 ms/op 1.01
UintBigint8 x 100000 tree_serialize 1.1369 ms/op 1.1294 ms/op 1.01
UintBigint16 x 100000 tree_deserialize 5.4541 ms/op 5.7139 ms/op 0.95
UintBigint16 x 100000 tree_serialize 1.5069 ms/op 1.4070 ms/op 1.07
UintBigint32 x 100000 tree_deserialize 5.6066 ms/op 5.5974 ms/op 1.00
UintBigint32 x 100000 tree_serialize 1.8665 ms/op 1.8884 ms/op 0.99
UintBigint64 x 100000 tree_deserialize 6.5046 ms/op 6.9190 ms/op 0.94
UintBigint64 x 100000 tree_serialize 2.0487 ms/op 2.5274 ms/op 0.81
UintBigint8 x 100000 value_deserialize 405.55 us/op 405.32 us/op 1.00
UintBigint8 x 100000 value_serialize 849.69 us/op 777.78 us/op 1.09
UintBigint16 x 100000 value_deserialize 466.74 us/op 466.61 us/op 1.00
UintBigint16 x 100000 value_serialize 807.45 us/op 809.50 us/op 1.00
UintBigint32 x 100000 value_deserialize 498.57 us/op 497.61 us/op 1.00
UintBigint32 x 100000 value_serialize 865.78 us/op 853.38 us/op 1.01
UintBigint64 x 100000 value_deserialize 531.18 us/op 530.94 us/op 1.00
UintBigint64 x 100000 value_serialize 1.0097 ms/op 989.37 us/op 1.02
UintBigint8 x 100000 deserialize 3.7267 ms/op 3.2645 ms/op 1.14
UintBigint8 x 100000 serialize 1.5051 ms/op 1.5957 ms/op 0.94
UintBigint16 x 100000 deserialize 3.6030 ms/op 3.2074 ms/op 1.12
UintBigint16 x 100000 serialize 1.5967 ms/op 1.7001 ms/op 0.94
UintBigint32 x 100000 deserialize 3.5356 ms/op 3.3228 ms/op 1.06
UintBigint32 x 100000 serialize 3.0713 ms/op 2.9502 ms/op 1.04
UintBigint64 x 100000 deserialize 4.4950 ms/op 4.2054 ms/op 1.07
UintBigint64 x 100000 serialize 1.6895 ms/op 1.6543 ms/op 1.02
UintBigint128 x 100000 deserialize 6.5086 ms/op 5.7743 ms/op 1.13
UintBigint128 x 100000 serialize 16.632 ms/op 16.279 ms/op 1.02
UintBigint256 x 100000 deserialize 9.1795 ms/op 8.8750 ms/op 1.03
UintBigint256 x 100000 serialize 46.684 ms/op 45.077 ms/op 1.04
Slice from Uint8Array x25000 1.7916 ms/op 1.4579 ms/op 1.23
Slice from ArrayBuffer x25000 16.862 ms/op 16.124 ms/op 1.05
Slice from ArrayBuffer x25000 + new Uint8Array 17.852 ms/op 17.611 ms/op 1.01
Copy Uint8Array 100000 iterate 2.4238 ms/op 1.7605 ms/op 1.38
Copy Uint8Array 100000 slice 125.62 us/op 113.74 us/op 1.10
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 114.48 us/op 113.47 us/op 1.01
Copy Buffer 100000 Uint8Array.prototype.slice.call 108.10 us/op 115.07 us/op 0.94
Copy Uint8Array 100000 slice + set 221.33 us/op 227.26 us/op 0.97
Copy Uint8Array 100000 subarray + set 111.55 us/op 113.85 us/op 0.98
Copy Uint8Array 100000 slice arrayBuffer 111.40 us/op 115.94 us/op 0.96
Uint64 deserialize 100000 - iterate Uint8Array 2.1669 ms/op 1.9938 ms/op 1.09
Uint64 deserialize 100000 - by Uint32A 2.0905 ms/op 1.8799 ms/op 1.11
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.1049 ms/op 1.9750 ms/op 1.07
Uint64 deserialize 100000 - by DataView.getBigUint64 5.0899 ms/op 4.9976 ms/op 1.02
Uint64 deserialize 100000 - by byte 40.379 ms/op 40.278 ms/op 1.00

by benchmarkbot/action

@wemeetagain wemeetagain force-pushed the release-please--branches--master branch from 3addb7c to 66df28f Compare August 25, 2025 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants