hiero-ledger / hiero-ledger/hiero-consensus-node

Create a single microbenchmark for a typical transaction

Open
#15,980 0 comments 0 reactions 0 assignees View on GitHub
Performance
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

Create a microbenchmark based on JMH that tests the execution of a single transaction.

It should create a round with a single event and a single transaction and initialize the state. This must be done in the initialization code that is not measured. With this round, it should call `HandleWorkflow.handleRound()` and measure the performance. A good typical transaction is a simple CryptoTransfer.

[This microbenchmark](https://github.com/hashgraph/hedera-services/blob/15510-blocks-stream-mode/hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/blocks/BlockStreamManagerBenchmark.java#L85) may be a good starting point.

Contributor guide

Open the contributing guide

Research direction

Start with the JMH example in hedera-node/hedera-app/src/jmh/java/com/hedera/node/app/blocks/BlockStreamManagerBenchmark.java and inspect the HandleWorkflow.handleRound() entry point. Set up a round containing one event and one CryptoTransfer transaction in the unmeasured initialization phase, then benchmark the handleRound() call. Done means the benchmark runs and measures only single-transaction execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.