hiero-ledger / hiero-ledger/hiero-consensus-node
Create a single microbenchmark for a typical transaction
- 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
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