ssz icon indicating copy to clipboard operation
ssz copied to clipboard

Improve performance of digest64

Open twoeths opened this issue 11 months ago • 0 comments

Some improvement could be done:

  • Use latest assemblyscript yields better performance
  • Chain w computation to the main loop in hashBlocks()
  • Return result by using Uint8Array.slice()
digestTwoHashObjects vs digest64 vs digest
    ✓ digestTwoHashObjects 50023 times                                    19.25844 ops/s    51.92528 ms/op        -         67 runs   3.98 s
    ✓ digest64 50023 times                                                20.23583 ops/s    49.41730 ms/op        -         12 runs   1.11 s
    ✓ digest 50023 times                                                  20.31116 ops/s    49.23402 ms/op        -         13 runs   1.19 s

this branch

digestTwoHashObjects vs digest64 vs digest
    ✓ digestTwoHashObjects 50023 times                                    21.91978 ops/s    45.62089 ms/op        -       1304 runs   60.0 s
    ✓ digest64 50023 times                                                21.11148 ops/s    47.36759 ms/op        -       1256 runs   60.0 s
    ✓ digest 50023 times                                                  20.90464 ops/s    47.83628 ms/op        -       1244 runs   60.0 s

however benchmark result in CI consistently shows worse statistics so need to investigate this, may need to separate to smaller PRs in order to figure out the issue

Originally posted by @tuyennhv in https://github.com/ChainSafe/ssz/issues/347#issuecomment-1972804385

twoeths avatar Mar 25 '24 03:03 twoeths