Skip to content

chore: migrate the simpleserialize.com package to separate git repo#494

Merged
nazarhussain merged 6 commits intomasterfrom
nh/remove-simpleserialize
Aug 5, 2025
Merged

chore: migrate the simpleserialize.com package to separate git repo#494
nazarhussain merged 6 commits intomasterfrom
nh/remove-simpleserialize

Conversation

@nazarhussain
Copy link
Contributor

Motivation

Provide more visibility and flexibility for front-end developers community to contribute to the website.

Description

Steps to test or reproduce

  • Run all tests

@nazarhussain nazarhussain requested a review from a team as a code owner July 31, 2025 09:40
@github-actions github-actions bot added the CI label Jul 31, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Jul 31, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 79441ae Previous: 1a34fe8 Ratio
digestTwoHashObjects 50023 times 48.050 ms/op 48.206 ms/op 1.00
digest2Bytes32 50023 times 53.972 ms/op 55.080 ms/op 0.98
digest 50023 times 53.385 ms/op 54.442 ms/op 0.98
input length 32 1.2240 us/op 1.2780 us/op 0.96
input length 64 1.3550 us/op 1.3820 us/op 0.98
input length 128 2.2750 us/op 2.3990 us/op 0.95
input length 256 3.4020 us/op 3.5250 us/op 0.97
input length 512 5.6200 us/op 5.6570 us/op 0.99
input length 1024 10.660 us/op 10.984 us/op 0.97
digest 1000000 times 855.45 ms/op 885.36 ms/op 0.97
hashObjectToByteArray 50023 times 935.54 us/op 936.36 us/op 1.00
byteArrayToHashObject 50023 times 1.3110 ms/op 1.4362 ms/op 0.91
digest64 200092 times 210.46 ms/op 214.79 ms/op 0.98
hash 200092 times using batchHash4UintArray64s 230.58 ms/op 236.72 ms/op 0.97
digest64HashObjects 200092 times 190.73 ms/op 192.81 ms/op 0.99
hash 200092 times using batchHash4HashObjectInputs 195.56 ms/op 201.61 ms/op 0.97
getGindicesAtDepth 3.6550 us/op 4.0340 us/op 0.91
iterateAtDepth 6.4680 us/op 7.0900 us/op 0.91
getGindexBits 451.00 ns/op 489.00 ns/op 0.92
gindexIterator 893.00 ns/op 1.0440 us/op 0.86
HashComputationLevel.push then loop 26.098 ms/op 31.209 ms/op 0.84
HashComputation[] push then loop 48.271 ms/op 51.198 ms/op 0.94
hash 2 32 bytes Uint8Array 500000 times - hashtree 179.55 ms/op 178.10 ms/op 1.01
batch hash 16 x 64 Uint8Array 31250 times - hashtree 26.569 ms/op 27.122 ms/op 0.98
hashTwoObjects 500000 times - hashtree 201.53 ms/op 207.38 ms/op 0.97
executeHashComputations - hashtree 9.1535 ms/op 9.7775 ms/op 0.94
hash 2 32 bytes Uint8Array 500000 times - as-sha256 494.24 ms/op 492.50 ms/op 1.00
batch hash 16 x 64 Uint8Array 31250 times - as-sha256 569.33 ms/op 562.36 ms/op 1.01
hashTwoObjects 500000 times - as-sha256 508.09 ms/op 512.28 ms/op 0.99
executeHashComputations - as-sha256 46.001 ms/op 46.981 ms/op 0.98
hash 2 32 bytes Uint8Array 500000 times - noble 1.2593 s/op 1.3960 s/op 0.90
batch hash 16 x 64 Uint8Array 31250 times - noble 1.2854 s/op 1.3200 s/op 0.97
hashTwoObjects 500000 times - noble 1.6655 s/op 1.8310 s/op 0.91
executeHashComputations - noble 36.384 ms/op 36.767 ms/op 0.99
getHashComputations 2.4863 ms/op 2.7890 ms/op 0.89
executeHashComputations 9.1506 ms/op 10.220 ms/op 0.90
get root 14.378 ms/op 15.465 ms/op 0.93
getNodeH() x7812.5 avg hindex 12.052 us/op 12.349 us/op 0.98
getNodeH() x7812.5 index 0 7.6220 us/op 7.4670 us/op 1.02
getNodeH() x7812.5 index 7 7.4700 us/op 7.4760 us/op 1.00
getNodeH() x7812.5 index 7 with key array 6.5750 us/op 6.3430 us/op 1.04
new LeafNode() x7812.5 328.99 us/op 411.50 us/op 0.80
getHashComputations 250000 nodes 16.694 ms/op 16.238 ms/op 1.03
batchHash 250000 nodes 86.263 ms/op 87.978 ms/op 0.98
get root 250000 nodes 107.85 ms/op 114.56 ms/op 0.94
getHashComputations 500000 nodes 28.677 ms/op 28.940 ms/op 0.99
batchHash 500000 nodes 149.67 ms/op 158.24 ms/op 0.95
get root 500000 nodes 214.52 ms/op 226.76 ms/op 0.95
getHashComputations 1000000 nodes 69.012 ms/op 55.211 ms/op 1.25
batchHash 1000000 nodes 311.71 ms/op 322.89 ms/op 0.97
get root 1000000 nodes 434.27 ms/op 449.35 ms/op 0.97
multiproof - depth 15, 1 requested leaves 7.7020 us/op 9.1540 us/op 0.84
tree offset multiproof - depth 15, 1 requested leaves 17.879 us/op 20.085 us/op 0.89
compact multiproof - depth 15, 1 requested leaves 3.2970 us/op 4.9860 us/op 0.66
multiproof - depth 15, 2 requested leaves 11.103 us/op 13.302 us/op 0.83
tree offset multiproof - depth 15, 2 requested leaves 20.535 us/op 24.080 us/op 0.85
compact multiproof - depth 15, 2 requested leaves 3.3230 us/op 5.0640 us/op 0.66
multiproof - depth 15, 3 requested leaves 15.795 us/op 18.318 us/op 0.86
tree offset multiproof - depth 15, 3 requested leaves 29.230 us/op 31.274 us/op 0.93
compact multiproof - depth 15, 3 requested leaves 4.0820 us/op 5.8090 us/op 0.70
multiproof - depth 15, 4 requested leaves 21.088 us/op 24.187 us/op 0.87
tree offset multiproof - depth 15, 4 requested leaves 32.962 us/op 38.698 us/op 0.85
compact multiproof - depth 15, 4 requested leaves 3.9220 us/op 5.3880 us/op 0.73
packedRootsBytesToLeafNodes bytes 4000 offset 0 5.6200 us/op 7.2820 us/op 0.77
packedRootsBytesToLeafNodes bytes 4000 offset 1 5.6100 us/op 7.2550 us/op 0.77
packedRootsBytesToLeafNodes bytes 4000 offset 2 5.5710 us/op 7.1460 us/op 0.78
packedRootsBytesToLeafNodes bytes 4000 offset 3 5.6250 us/op 7.2670 us/op 0.77
subtreeFillToContents depth 40 count 250000 46.162 ms/op 51.268 ms/op 0.90
setRoot - gindexBitstring 21.496 ms/op 26.749 ms/op 0.80
setRoot - gindex 21.800 ms/op 27.086 ms/op 0.80
getRoot - gindexBitstring 2.5498 ms/op 2.7751 ms/op 0.92
getRoot - gindex 3.0208 ms/op 3.4418 ms/op 0.88
getHashObject then setHashObject 22.972 ms/op 27.134 ms/op 0.85
setNodeWithFn 20.155 ms/op 24.557 ms/op 0.82
getNodeAtDepth depth 0 x100000 280.43 us/op 281.18 us/op 1.00
setNodeAtDepth depth 0 x100000 2.7327 ms/op 2.7790 ms/op 0.98
getNodesAtDepth depth 0 x100000 312.72 us/op 312.56 us/op 1.00
setNodesAtDepth depth 0 x100000 761.46 us/op 760.82 us/op 1.00
getNodeAtDepth depth 1 x100000 342.23 us/op 342.47 us/op 1.00
setNodeAtDepth depth 1 x100000 8.3444 ms/op 10.335 ms/op 0.81
getNodesAtDepth depth 1 x100000 436.23 us/op 436.02 us/op 1.00
setNodesAtDepth depth 1 x100000 6.8856 ms/op 8.2547 ms/op 0.83
getNodeAtDepth depth 2 x100000 834.61 us/op 750.47 us/op 1.11
setNodeAtDepth depth 2 x100000 15.686 ms/op 20.302 ms/op 0.77
getNodesAtDepth depth 2 x100000 19.241 ms/op 19.829 ms/op 0.97
setNodesAtDepth depth 2 x100000 24.074 ms/op 27.957 ms/op 0.86
tree.getNodesAtDepth - gindexes 10.279 ms/op 10.562 ms/op 0.97
tree.getNodesAtDepth - push all nodes 2.4648 ms/op 2.7117 ms/op 0.91
tree.getNodesAtDepth - navigation 311.57 us/op 311.98 us/op 1.00
tree.setNodesAtDepth - indexes 664.62 us/op 782.64 us/op 0.85
set at depth 8 886.00 ns/op 1.0340 us/op 0.86
set at depth 16 1.0480 us/op 1.1030 us/op 0.95
set at depth 32 2.2360 us/op 2.6810 us/op 0.83
iterateNodesAtDepth 8 256 14.733 us/op 16.268 us/op 0.91
getNodesAtDepth 8 256 3.7330 us/op 3.9850 us/op 0.94
iterateNodesAtDepth 16 65536 4.4940 ms/op 4.8329 ms/op 0.93
getNodesAtDepth 16 65536 1.1347 ms/op 1.7449 ms/op 0.65
iterateNodesAtDepth 32 250000 15.971 ms/op 17.072 ms/op 0.94
getNodesAtDepth 32 250000 4.4293 ms/op 6.2861 ms/op 0.70
iterateNodesAtDepth 40 250000 15.993 ms/op 18.121 ms/op 0.88
getNodesAtDepth 40 250000 4.4690 ms/op 6.5936 ms/op 0.68
250000 validators root getter 109.18 ms/op 114.09 ms/op 0.96
250000 validators batchHash() 86.053 ms/op 127.32 ms/op 0.68
250000 validators hashComputations 15.766 ms/op 14.778 ms/op 1.07
bitlist bytes to struct (120,90) 511.00 ns/op 570.00 ns/op 0.90
bitlist bytes to tree (120,90) 2.0360 us/op 2.4430 us/op 0.83
bitlist bytes to struct (2048,2048) 855.00 ns/op 1.0220 us/op 0.84
bitlist bytes to tree (2048,2048) 3.3250 us/op 4.1230 us/op 0.81
ByteListType - deserialize 8.4784 ms/op 10.061 ms/op 0.84
BasicListType - deserialize 9.2388 ms/op 11.455 ms/op 0.81
ByteListType - serialize 9.1889 ms/op 10.273 ms/op 0.89
BasicListType - serialize 12.413 ms/op 12.484 ms/op 0.99
BasicListType - tree_convertToStruct 22.301 ms/op 25.385 ms/op 0.88
List[uint8, 68719476736] len 300000 ViewDU.getAll() + iterate 4.6745 ms/op 6.0990 ms/op 0.77
List[uint8, 68719476736] len 300000 ViewDU.get(i) 4.3763 ms/op 4.4313 ms/op 0.99
Array.push len 300000 empty Array - number 6.3954 ms/op 7.0270 ms/op 0.91
Array.set len 300000 from new Array - number 1.8466 ms/op 2.2236 ms/op 0.83
Array.set len 300000 - number 5.9759 ms/op 6.6042 ms/op 0.90
Uint8Array.set len 300000 385.16 us/op 390.69 us/op 0.99
Uint32Array.set len 300000 439.06 us/op 471.47 us/op 0.93
Container({a: uint8, b: uint8}) getViewDU x300000 28.615 ms/op 30.817 ms/op 0.93
ContainerNodeStruct({a: uint8, b: uint8}) getViewDU x300000 10.583 ms/op 13.633 ms/op 0.78
List(Container) len 300000 ViewDU.getAllReadonly() + iterate 196.66 ms/op 225.07 ms/op 0.87
List(Container) len 300000 ViewDU.getAllReadonlyValues() + iterate 230.19 ms/op 281.97 ms/op 0.82
List(Container) len 300000 ViewDU.get(i) 6.3768 ms/op 7.8545 ms/op 0.81
List(Container) len 300000 ViewDU.getReadonly(i) 6.4268 ms/op 7.8532 ms/op 0.82
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonly() + iterate 36.095 ms/op 37.533 ms/op 0.96
List(ContainerNodeStruct) len 300000 ViewDU.getAllReadonlyValues() + iterate 5.2934 ms/op 6.8283 ms/op 0.78
List(ContainerNodeStruct) len 300000 ViewDU.get(i) 6.1582 ms/op 7.3076 ms/op 0.84
List(ContainerNodeStruct) len 300000 ViewDU.getReadonly(i) 6.2455 ms/op 7.3175 ms/op 0.85
Array.push len 300000 empty Array - object 6.8291 ms/op 7.3937 ms/op 0.92
Array.set len 300000 from new Array - object 2.0744 ms/op 2.3552 ms/op 0.88
Array.set len 300000 - object 6.2281 ms/op 7.1901 ms/op 0.87
cachePermanentRootStruct no cache 3.4610 us/op 3.7760 us/op 0.92
cachePermanentRootStruct with cache 167.00 ns/op 213.00 ns/op 0.78
epochParticipation len 250000 rws 7813 2.3999 ms/op 2.5466 ms/op 0.94
Deneb BeaconBlock.hashTreeRoot(), numTransaction=200 5.3364 ms/op 5.8914 ms/op 0.91
BeaconState ViewDU batchHashTreeRoot vc=200000 mod=100000 220.90 ms/op 232.99 ms/op 0.95
BeaconState ViewDU batchHashTreeRoot - commit step vc=200000 mod=100000 182.83 ms/op 197.01 ms/op 0.93
BeaconState ViewDU batchHashTreeRoot - hash step vc=200000 mod=100000 48.727 ms/op 51.220 ms/op 0.95
BeaconState ViewDU hashTreeRoot() vc=200000 mod=100000 754.66 ms/op 820.23 ms/op 0.92
BeaconState ViewDU hashTreeRoot - commit step vc=200000 mod=100000 61.918 ms/op 65.751 ms/op 0.94
BeaconState ViewDU hashTreeRoot - validator tree creation vc=100000 mod=100000 263.33 ms/op 287.10 ms/op 0.92
deserialize Attestation - tree 3.6750 us/op 4.4380 us/op 0.83
deserialize Attestation - struct 1.8830 us/op 2.4280 us/op 0.78
deserialize SignedAggregateAndProof - tree 4.8170 us/op 5.9320 us/op 0.81
deserialize SignedAggregateAndProof - struct 3.0640 us/op 3.8540 us/op 0.80
deserialize SyncCommitteeMessage - tree 1.4310 us/op 1.8420 us/op 0.78
deserialize SyncCommitteeMessage - struct 1.1000 us/op 1.2050 us/op 0.91
deserialize SignedContributionAndProof - tree 2.8440 us/op 3.3420 us/op 0.85
deserialize SignedContributionAndProof - struct 2.4310 us/op 2.8960 us/op 0.84
deserialize SignedBeaconBlock - tree 276.26 us/op 345.62 us/op 0.80
deserialize SignedBeaconBlock - struct 117.91 us/op 153.85 us/op 0.77
BeaconState vc 300000 - deserialize tree 628.22 ms/op 677.46 ms/op 0.93
BeaconState vc 300000 - serialize tree 92.020 ms/op 105.23 ms/op 0.87
BeaconState.historicalRoots vc 300000 - deserialize tree 905.00 ns/op 1.0830 us/op 0.84
BeaconState.historicalRoots vc 300000 - serialize tree 641.00 ns/op 740.00 ns/op 0.87
BeaconState.validators vc 300000 - deserialize tree 582.66 ms/op 663.46 ms/op 0.88
BeaconState.validators vc 300000 - serialize tree 33.068 ms/op 34.251 ms/op 0.97
BeaconState.balances vc 300000 - deserialize tree 28.135 ms/op 29.340 ms/op 0.96
BeaconState.balances vc 300000 - serialize tree 4.3171 ms/op 6.5750 ms/op 0.66
BeaconState.previousEpochParticipation vc 300000 - deserialize tree 952.95 us/op 1.3437 ms/op 0.71
BeaconState.previousEpochParticipation vc 300000 - serialize tree 303.67 us/op 343.86 us/op 0.88
BeaconState.currentEpochParticipation vc 300000 - deserialize tree 935.98 us/op 1.3674 ms/op 0.68
BeaconState.currentEpochParticipation vc 300000 - serialize tree 323.80 us/op 343.97 us/op 0.94
BeaconState.inactivityScores vc 300000 - deserialize tree 25.517 ms/op 31.178 ms/op 0.82
BeaconState.inactivityScores vc 300000 - serialize tree 3.7756 ms/op 4.4568 ms/op 0.85
hashTreeRoot Attestation - struct 10.188 us/op 13.976 us/op 0.73
hashTreeRoot Attestation - tree 8.7120 us/op 9.4440 us/op 0.92
hashTreeRoot SignedAggregateAndProof - struct 13.619 us/op 15.271 us/op 0.89
hashTreeRoot SignedAggregateAndProof - tree 13.018 us/op 13.835 us/op 0.94
hashTreeRoot SyncCommitteeMessage - struct 3.3710 us/op 3.7060 us/op 0.91
hashTreeRoot SyncCommitteeMessage - tree 3.2380 us/op 3.5250 us/op 0.92
hashTreeRoot SignedContributionAndProof - struct 8.5280 us/op 8.9640 us/op 0.95
hashTreeRoot SignedContributionAndProof - tree 8.9750 us/op 9.4310 us/op 0.95
hashTreeRoot SignedBeaconBlock - struct 837.83 us/op 866.99 us/op 0.97
hashTreeRoot SignedBeaconBlock - tree 780.03 us/op 797.14 us/op 0.98
hashTreeRoot Validator - struct 4.5590 us/op 5.0180 us/op 0.91
hashTreeRoot Validator - tree 6.2440 us/op 6.7510 us/op 0.92
BeaconState vc 300000 - hashTreeRoot tree 2.1555 s/op 2.2543 s/op 0.96
BeaconState vc 300000 - batchHashTreeRoot tree 3.8656 s/op 4.1921 s/op 0.92
BeaconState.historicalRoots vc 300000 - hashTreeRoot tree 904.00 ns/op 1.0060 us/op 0.90
BeaconState.validators vc 300000 - hashTreeRoot tree 2.2544 s/op 2.5234 s/op 0.89
BeaconState.balances vc 300000 - hashTreeRoot tree 38.012 ms/op 35.115 ms/op 1.08
BeaconState.previousEpochParticipation vc 300000 - hashTreeRoot tree 4.0978 ms/op 4.3187 ms/op 0.95
BeaconState.currentEpochParticipation vc 300000 - hashTreeRoot tree 4.1023 ms/op 4.3525 ms/op 0.94
BeaconState.inactivityScores vc 300000 - hashTreeRoot tree 33.220 ms/op 37.361 ms/op 0.89
hash64 x18 8.8080 us/op 9.7650 us/op 0.90
hashTwoObjects x18 8.1730 us/op 8.2660 us/op 0.99
hash64 x1740 781.51 us/op 849.95 us/op 0.92
hashTwoObjects x1740 745.78 us/op 738.12 us/op 1.01
hash64 x2700000 1.2270 s/op 1.3628 s/op 0.90
hashTwoObjects x2700000 1.1407 s/op 1.1902 s/op 0.96
get_exitEpoch - ContainerType 320.00 ns/op 320.00 ns/op 1.00
get_exitEpoch - ContainerNodeStructType 268.00 ns/op 411.00 ns/op 0.65
set_exitEpoch - ContainerType 250.00 ns/op 281.00 ns/op 0.89
set_exitEpoch - ContainerNodeStructType 226.00 ns/op 287.00 ns/op 0.79
get_pubkey - ContainerType 923.00 ns/op 1.1490 us/op 0.80
get_pubkey - ContainerNodeStructType 226.00 ns/op 276.00 ns/op 0.82
hashTreeRoot - ContainerType 546.00 ns/op 590.00 ns/op 0.93
hashTreeRoot - ContainerNodeStructType 520.00 ns/op 593.00 ns/op 0.88
createProof - ContainerType 3.6250 us/op 4.3900 us/op 0.83
createProof - ContainerNodeStructType 18.982 us/op 23.147 us/op 0.82
serialize - ContainerType 1.6830 us/op 2.0020 us/op 0.84
serialize - ContainerNodeStructType 1.1040 us/op 1.3820 us/op 0.80
set_exitEpoch_and_hashTreeRoot - ContainerType 2.6750 us/op 2.8410 us/op 0.94
set_exitEpoch_and_hashTreeRoot - ContainerNodeStructType 7.1090 us/op 8.0190 us/op 0.89
doBatchHashTreeRootValidators 3.9870 us/op 3.9920 us/op 1.00
ContainerNodeStructViewDU hashTreeRoot 24.572 us/op 26.865 us/op 0.91
Array - for of 10.645 us/op 5.6680 us/op 1.88
Array - for(;;) 10.920 us/op 5.6020 us/op 1.95
basicListValue.readonlyValuesArray() 4.6953 ms/op 6.0076 ms/op 0.78
basicListValue.readonlyValuesArray() + loop all 4.5198 ms/op 6.8891 ms/op 0.66
compositeListValue.readonlyValuesArray() 30.131 ms/op 31.927 ms/op 0.94
compositeListValue.readonlyValuesArray() + loop all 30.306 ms/op 32.632 ms/op 0.93
Number64UintType - get balances list 4.4482 ms/op 5.5396 ms/op 0.80
Number64UintType - set balances list 9.9707 ms/op 10.330 ms/op 0.97
Number64UintType - get and increase 10 then set 40.455 ms/op 43.268 ms/op 0.93
Number64UintType - increase 10 using applyDelta 17.573 ms/op 18.457 ms/op 0.95
Number64UintType - increase 10 using applyDeltaInBatch 17.548 ms/op 18.363 ms/op 0.96
tree_newTreeFromUint64Deltas 21.645 ms/op 21.037 ms/op 1.03
unsafeUint8ArrayToTree 38.583 ms/op 39.851 ms/op 0.97
bitLength(50) 251.00 ns/op 285.00 ns/op 0.88
bitLengthStr(50) 231.00 ns/op 239.00 ns/op 0.97
bitLength(8000) 256.00 ns/op 324.00 ns/op 0.79
bitLengthStr(8000) 328.00 ns/op 345.00 ns/op 0.95
bitLength(250000) 249.00 ns/op 274.00 ns/op 0.91
bitLengthStr(250000) 304.00 ns/op 315.00 ns/op 0.97
merkleize 32 chunks 15.172 us/op 15.703 us/op 0.97
merkleizeBlocksBytes 32 chunks 3.4790 us/op 3.5290 us/op 0.99
merkleizeBlockArray 32 chunks 6.9060 us/op 7.0230 us/op 0.98
merkleize 128 chunks 59.469 us/op 61.567 us/op 0.97
merkleizeBlocksBytes 128 chunks 7.7070 us/op 8.0000 us/op 0.96
merkleizeBlockArray 128 chunks 19.214 us/op 19.456 us/op 0.99
merkleize 512 chunks 236.24 us/op 245.21 us/op 0.96
merkleizeBlocksBytes 512 chunks 23.252 us/op 23.490 us/op 0.99
merkleizeBlockArray 512 chunks 65.249 us/op 65.938 us/op 0.99
merkleize 1024 chunks 474.66 us/op 491.24 us/op 0.97
merkleizeBlocksBytes 1024 chunks 43.590 us/op 43.442 us/op 1.00
merkleizeBlockArray 1024 chunks 126.15 us/op 126.70 us/op 1.00
floor - Math.floor (53) 1.2438 ns/op 1.2536 ns/op 0.99
floor - << 0 (53) 1.2434 ns/op 1.2567 ns/op 0.99
floor - Math.floor (512) 1.2449 ns/op 1.2571 ns/op 0.99
floor - << 0 (512) 1.2429 ns/op 1.2534 ns/op 0.99
fnIf(0) 1.5549 ns/op 1.5726 ns/op 0.99
fnSwitch(0) 2.1775 ns/op 2.1920 ns/op 0.99
fnObj(0) 1.5547 ns/op 1.5676 ns/op 0.99
fnArr(0) 1.5540 ns/op 1.5752 ns/op 0.99
fnIf(4) 2.1751 ns/op 2.2106 ns/op 0.98
fnSwitch(4) 2.1774 ns/op 2.1947 ns/op 0.99
fnObj(4) 1.5546 ns/op 1.5573 ns/op 1.00
fnArr(4) 1.5611 ns/op 1.5589 ns/op 1.00
fnIf(9) 3.1077 ns/op 3.1085 ns/op 1.00
fnSwitch(9) 2.1776 ns/op 2.2052 ns/op 0.99
fnObj(9) 1.5618 ns/op 1.5577 ns/op 1.00
fnArr(9) 1.5564 ns/op 1.5741 ns/op 0.99
Container {a,b,vec} - as struct x100000 124.43 us/op 125.50 us/op 0.99
Container {a,b,vec} - as tree x100000 559.81 us/op 560.98 us/op 1.00
Container {a,vec,b} - as struct x100000 155.68 us/op 155.65 us/op 1.00
Container {a,vec,b} - as tree x100000 559.56 us/op 565.53 us/op 0.99
get 2 props x1000000 - rawObject 311.26 us/op 312.07 us/op 1.00
get 2 props x1000000 - proxy 73.070 ms/op 73.637 ms/op 0.99
get 2 props x1000000 - customObj 311.52 us/op 312.12 us/op 1.00
Simple object binary -> struct 607.00 ns/op 633.00 ns/op 0.96
Simple object binary -> tree_backed 1.7450 us/op 1.8430 us/op 0.95
Simple object struct -> tree_backed 2.4640 us/op 2.6160 us/op 0.94
Simple object tree_backed -> struct 1.6800 us/op 1.7650 us/op 0.95
Simple object struct -> binary 940.00 ns/op 1.0640 us/op 0.88
Simple object tree_backed -> binary 1.3840 us/op 1.5180 us/op 0.91
aggregationBits binary -> struct 512.00 ns/op 565.00 ns/op 0.91
aggregationBits binary -> tree_backed 2.5440 us/op 2.4840 us/op 1.02
aggregationBits struct -> tree_backed 2.7150 us/op 3.1140 us/op 0.87
aggregationBits tree_backed -> struct 1.0290 us/op 1.2120 us/op 0.85
aggregationBits struct -> binary 743.00 ns/op 852.00 ns/op 0.87
aggregationBits tree_backed -> binary 829.00 ns/op 1.0230 us/op 0.81
List(uint8) 100000 binary -> struct 996.02 us/op 1.0397 ms/op 0.96
List(uint8) 100000 binary -> tree_backed 282.41 us/op 375.15 us/op 0.75
List(uint8) 100000 struct -> tree_backed 1.3573 ms/op 1.4452 ms/op 0.94
List(uint8) 100000 tree_backed -> struct 965.73 us/op 1.0115 ms/op 0.95
List(uint8) 100000 struct -> binary 1.0519 ms/op 1.0769 ms/op 0.98
List(uint8) 100000 tree_backed -> binary 107.99 us/op 112.97 us/op 0.96
List(uint64Number) 100000 binary -> struct 1.3568 ms/op 1.5885 ms/op 0.85
List(uint64Number) 100000 binary -> tree_backed 4.5669 ms/op 5.4639 ms/op 0.84
List(uint64Number) 100000 struct -> tree_backed 6.2420 ms/op 8.0277 ms/op 0.78
List(uint64Number) 100000 tree_backed -> struct 2.3127 ms/op 2.5639 ms/op 0.90
List(uint64Number) 100000 struct -> binary 1.4104 ms/op 1.4534 ms/op 0.97
List(uint64Number) 100000 tree_backed -> binary 1.0583 ms/op 1.4702 ms/op 0.72
List(Uint64Bigint) 100000 binary -> struct 3.8839 ms/op 4.1668 ms/op 0.93
List(Uint64Bigint) 100000 binary -> tree_backed 4.7024 ms/op 5.9688 ms/op 0.79
List(Uint64Bigint) 100000 struct -> tree_backed 7.4947 ms/op 8.2315 ms/op 0.91
List(Uint64Bigint) 100000 tree_backed -> struct 5.2206 ms/op 6.0845 ms/op 0.86
List(Uint64Bigint) 100000 struct -> binary 2.1165 ms/op 2.1013 ms/op 1.01
List(Uint64Bigint) 100000 tree_backed -> binary 1.9060 ms/op 1.4915 ms/op 1.28
Vector(Root) 100000 binary -> struct 36.213 ms/op 35.353 ms/op 1.02
Vector(Root) 100000 binary -> tree_backed 34.944 ms/op 37.705 ms/op 0.93
Vector(Root) 100000 struct -> tree_backed 49.994 ms/op 52.118 ms/op 0.96
Vector(Root) 100000 tree_backed -> struct 49.303 ms/op 51.605 ms/op 0.96
Vector(Root) 100000 struct -> binary 3.2238 ms/op 3.6166 ms/op 0.89
Vector(Root) 100000 tree_backed -> binary 6.2494 ms/op 7.9053 ms/op 0.79
List(Validator) 100000 binary -> struct 98.944 ms/op 114.79 ms/op 0.86
List(Validator) 100000 binary -> tree_backed 347.61 ms/op 349.23 ms/op 1.00
List(Validator) 100000 struct -> tree_backed 380.94 ms/op 399.65 ms/op 0.95
List(Validator) 100000 tree_backed -> struct 211.74 ms/op 220.03 ms/op 0.96
List(Validator) 100000 struct -> binary 30.217 ms/op 30.451 ms/op 0.99
List(Validator) 100000 tree_backed -> binary 105.86 ms/op 111.41 ms/op 0.95
List(Validator-NS) 100000 binary -> struct 115.54 ms/op 118.70 ms/op 0.97
List(Validator-NS) 100000 binary -> tree_backed 157.06 ms/op 168.21 ms/op 0.93
List(Validator-NS) 100000 struct -> tree_backed 182.50 ms/op 194.82 ms/op 0.94
List(Validator-NS) 100000 tree_backed -> struct 147.70 ms/op 152.53 ms/op 0.97
List(Validator-NS) 100000 struct -> binary 7.8586 ms/op 8.7336 ms/op 0.90
List(Validator-NS) 100000 tree_backed -> binary 12.442 ms/op 12.817 ms/op 0.97
get epochStatuses - MutableVector 97.414 us/op 113.57 us/op 0.86
get epochStatuses - ViewDU 210.01 us/op 214.09 us/op 0.98
set epochStatuses - ListTreeView 2.0792 ms/op 2.3797 ms/op 0.87
set epochStatuses - ListTreeView - set() 442.91 us/op 446.38 us/op 0.99
set epochStatuses - ListTreeView - commit() 724.19 us/op 773.52 us/op 0.94
bitstring 514.12 ns/op 523.53 ns/op 0.98
bit mask 14.003 ns/op 13.101 ns/op 1.07
struct - increase slot to 1000000 932.28 us/op 942.00 us/op 0.99
UintNumberType - increase slot to 1000000 27.710 ms/op 27.915 ms/op 0.99
UintBigintType - increase slot to 1000000 165.79 ms/op 211.07 ms/op 0.79
UintBigint8 x 100000 tree_deserialize 5.5773 ms/op 7.1725 ms/op 0.78
UintBigint8 x 100000 tree_serialize 1.1412 ms/op 1.1454 ms/op 1.00
UintBigint16 x 100000 tree_deserialize 5.6755 ms/op 7.2779 ms/op 0.78
UintBigint16 x 100000 tree_serialize 1.3860 ms/op 1.7248 ms/op 0.80
UintBigint32 x 100000 tree_deserialize 5.5521 ms/op 6.9269 ms/op 0.80
UintBigint32 x 100000 tree_serialize 1.8484 ms/op 2.3458 ms/op 0.79
UintBigint64 x 100000 tree_deserialize 6.3677 ms/op 7.6120 ms/op 0.84
UintBigint64 x 100000 tree_serialize 2.5340 ms/op 3.1302 ms/op 0.81
UintBigint8 x 100000 value_deserialize 404.41 us/op 404.60 us/op 1.00
UintBigint8 x 100000 value_serialize 774.82 us/op 961.09 us/op 0.81
UintBigint16 x 100000 value_deserialize 466.99 us/op 470.41 us/op 0.99
UintBigint16 x 100000 value_serialize 811.18 us/op 961.88 us/op 0.84
UintBigint32 x 100000 value_deserialize 498.16 us/op 501.53 us/op 0.99
UintBigint32 x 100000 value_serialize 859.91 us/op 1.1161 ms/op 0.77
UintBigint64 x 100000 value_deserialize 530.81 us/op 535.09 us/op 0.99
UintBigint64 x 100000 value_serialize 991.29 us/op 1.3318 ms/op 0.74
UintBigint8 x 100000 deserialize 3.2524 ms/op 3.8239 ms/op 0.85
UintBigint8 x 100000 serialize 1.7233 ms/op 1.6333 ms/op 1.06
UintBigint16 x 100000 deserialize 3.3453 ms/op 3.9945 ms/op 0.84
UintBigint16 x 100000 serialize 1.5122 ms/op 1.6627 ms/op 0.91
UintBigint32 x 100000 deserialize 3.4162 ms/op 3.9868 ms/op 0.86
UintBigint32 x 100000 serialize 2.8198 ms/op 3.4701 ms/op 0.81
UintBigint64 x 100000 deserialize 4.1552 ms/op 4.5934 ms/op 0.90
UintBigint64 x 100000 serialize 1.6345 ms/op 1.7890 ms/op 0.91
UintBigint128 x 100000 deserialize 5.7826 ms/op 6.4478 ms/op 0.90
UintBigint128 x 100000 serialize 14.949 ms/op 18.082 ms/op 0.83
UintBigint256 x 100000 deserialize 8.8342 ms/op 10.801 ms/op 0.82
UintBigint256 x 100000 serialize 45.300 ms/op 48.354 ms/op 0.94
Slice from Uint8Array x25000 1.3726 ms/op 1.7109 ms/op 0.80
Slice from ArrayBuffer x25000 16.285 ms/op 17.004 ms/op 0.96
Slice from ArrayBuffer x25000 + new Uint8Array 18.029 ms/op 19.462 ms/op 0.93
Copy Uint8Array 100000 iterate 1.7026 ms/op 1.7385 ms/op 0.98
Copy Uint8Array 100000 slice 125.38 us/op 134.20 us/op 0.93
Copy Uint8Array 100000 Uint8Array.prototype.slice.call 122.16 us/op 135.58 us/op 0.90
Copy Buffer 100000 Uint8Array.prototype.slice.call 119.22 us/op 136.51 us/op 0.87
Copy Uint8Array 100000 slice + set 241.18 us/op 257.15 us/op 0.94
Copy Uint8Array 100000 subarray + set 124.52 us/op 131.63 us/op 0.95
Copy Uint8Array 100000 slice arrayBuffer 126.10 us/op 132.90 us/op 0.95
Uint64 deserialize 100000 - iterate Uint8Array 2.1274 ms/op 2.2000 ms/op 0.97
Uint64 deserialize 100000 - by Uint32A 2.0907 ms/op 2.1704 ms/op 0.96
Uint64 deserialize 100000 - by DataView.getUint32 x2 2.1351 ms/op 2.1646 ms/op 0.99
Uint64 deserialize 100000 - by DataView.getBigUint64 5.3505 ms/op 5.4158 ms/op 0.99
Uint64 deserialize 100000 - by byte 40.202 ms/op 41.050 ms/op 0.98

by benchmarkbot/action

wemeetagain
wemeetagain previously approved these changes Jul 31, 2025
@nazarhussain nazarhussain merged commit b9fb51f into master Aug 5, 2025
11 checks passed
@nazarhussain nazarhussain deleted the nh/remove-simpleserialize branch August 5, 2025 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants