From 8f81f0ccf2ac57750478faee9d1b2631c052ff70 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Fri, 27 Dec 2024 21:16:25 +0700 Subject: [PATCH] feat(net): make benchmark inputs deterministic (#13563) --- crates/net/network/benches/broadcast.rs | 10 +++++++--- .../net/network/benches/tx_manager_hash_fetching.rs | 12 +++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/crates/net/network/benches/broadcast.rs b/crates/net/network/benches/broadcast.rs index ebe14a7ea8..27a41278db 100644 --- a/crates/net/network/benches/broadcast.rs +++ b/crates/net/network/benches/broadcast.rs @@ -1,9 +1,11 @@ #![allow(missing_docs)] -use alloy_primitives::U256; +use alloy_primitives::{ + private::proptest::test_runner::{RngAlgorithm, TestRng}, + U256, +}; use criterion::*; use futures::StreamExt; use pprof::criterion::{Output, PProfProfiler}; -use rand::thread_rng; use reth_network::{test_utils::Testnet, NetworkEventListenerProvider}; use reth_network_api::Peers; use reth_provider::test_utils::{ExtendedAccount, MockEthProvider}; @@ -49,7 +51,9 @@ pub fn broadcast_ingress_bench(c: &mut Criterion) { } // prepare some transactions - let mut gen = TransactionGenerator::new(thread_rng()); + let mut gen = TransactionGenerator::new(TestRng::deterministic_rng( + RngAlgorithm::ChaCha, + )); let num_broadcasts = 10; for _ in 0..num_broadcasts { for _ in 0..2 { diff --git a/crates/net/network/benches/tx_manager_hash_fetching.rs b/crates/net/network/benches/tx_manager_hash_fetching.rs index 6a739c997e..bb45b201a0 100644 --- a/crates/net/network/benches/tx_manager_hash_fetching.rs +++ b/crates/net/network/benches/tx_manager_hash_fetching.rs @@ -1,8 +1,11 @@ #![allow(missing_docs)] -use alloy_primitives::U256; + +use alloy_primitives::{ + private::proptest::test_runner::{RngAlgorithm, TestRng}, + U256, +}; use criterion::*; use pprof::criterion::{Output, PProfProfiler}; -use rand::thread_rng; use reth_network::{ test_utils::Testnet, transactions::{ @@ -61,7 +64,10 @@ pub fn tx_fetch_bench(c: &mut Criterion) { let peer_pool = peer.pool().unwrap(); for _ in 0..num_tx_per_peer { - let mut gen = TransactionGenerator::new(thread_rng()); + let mut gen = TransactionGenerator::new( + TestRng::deterministic_rng(RngAlgorithm::ChaCha), + ); + let tx = gen.gen_eip1559_pooled(); let sender = tx.sender(); provider.add_account(