helios/benches
refcell.eth 3afa312776
feat(flamegraphs): Introduce Flamegraphs (#138)
* 🔥 flamegraphs

* 📝 flamegraph blog post :chain:

* client get_fee_history

* node get_fee_history

* errors: InvalidBaseGaseFee

* execution get_fee_history

* http rpc get_fee_history

* moc rpc get_fee_history and json file

* module add get_fee_history

* update exec

* test feehistory

* update execution with logging + better logic

* fee history config loader

* rust fmt client

* rustfmt node

* rustfmt error

* rustfmt execution

* rustfmt http and moc rpc

* rustfmt mod.rs

* fee history formating

* correct typos

* use env var

* InvalidGasUsedRatio error

* check gas used ratio

* remove logging

* Update execution/src/errors.rs

Co-authored-by: refcell.eth <abigger87@gmail.com>

* Update execution/src/execution.rs

Co-authored-by: refcell.eth <abigger87@gmail.com>

* adding block and payload errors

* using error

* handle error in test

* fix: evm panic on slot not found (#208)

* fixes, but test fails

* fix: cleanup and example (#210)

* clean up fee history

* bump time dep in chrono, thx dependabot

* add benches to pr

* sleep

* fmt 

* place benching behind a man flag

* cleanup flamegraphs

* cleanup

---------

Co-authored-by: SFYLL <santiagoflood@hotmail.fr>
Co-authored-by: SFYLL <39958632+SFYLL@users.noreply.github.com>
2023-03-13 18:12:44 -04:00
..
flamegraphs feat(flamegraphs): Introduce Flamegraphs (#138) 2023-03-13 18:12:44 -04:00
README.md feat(flamegraphs): Introduce Flamegraphs (#138) 2023-03-13 18:12:44 -04:00
file_db.rs fix: benches (#184) 2023-01-31 18:23:55 -05:00
get_balance.rs feat: fee history (#211) 2023-03-11 01:59:29 -05:00
get_code.rs feat(benches): Criterion + Iai Benchmarking [RFC] (#131) 2022-12-11 14:42:52 -05:00
harness.rs fix: benches (#184) 2023-01-31 18:23:55 -05:00
sync.rs feat(benches): Criterion + Iai Benchmarking [RFC] (#131) 2022-12-11 14:42:52 -05:00

README.md

Helios Benchmarking

Helios performance is measured using criterion for comprehensive statistics-driven benchmarking.

Benchmarks are defined in the benches subdirectory and can be run using the cargo bench subcommand (eg cargo bench). To run a specific benchmark, you can use cargo bench --bench <name>, where <name> is one of the benchmarks defined in the Cargo.toml file under a [[bench]] section.

Flamegraphs

Flamegraph is a powerful rust crate for generating profile visualizations, that is graphing the time a program spends in each function. Functions called during execution are displayed as horizontal rectangles with the width proportional to the time spent in that function. As the call stack grows (think nested function invocations), the rectangles are stacked vertically. This provides a powerful visualization for quickly understanding which parts of a codebase take up disproportionate amounts of time.

Check out Brendan Gregg's Flame Graphs blog post if you're interested in learning more about flamegraphs and performance visualizations in general.

To generate a flamegraph for helios, you can use the cargo flamegraph subcommand. For example, to generate a flamegraph for the client example, you can run:

cargo flamegraph --example client -o ./flamegraphs/client.svg