Organise epoch benching file

This commit is contained in:
Paul Hauner 2019-03-10 17:48:26 +11:00
parent 89fc386264
commit 9cc8e2598f
No known key found for this signature in database
GPG Key ID: D362883A9218FCC6

View File

@ -12,6 +12,9 @@ use state_processing::{
}; };
use types::{validator_registry::get_active_validator_indices, *}; use types::{validator_registry::get_active_validator_indices, *};
pub const BENCHING_SAMPLE_SIZE: usize = 100;
pub const SMALL_BENCHING_SAMPLE_SIZE: usize = 10;
/// Run the benchmarking suite on a foundation spec with 16,384 validators. /// Run the benchmarking suite on a foundation spec with 16,384 validators.
pub fn epoch_processing_16k_validators(c: &mut Criterion) { pub fn epoch_processing_16k_validators(c: &mut Criterion) {
let spec = ChainSpec::foundation(); let spec = ChainSpec::foundation();
@ -70,19 +73,6 @@ pub fn epoch_processing_16k_validators(c: &mut Criterion) {
/// ///
/// `desc` will be added to the title of each bench. /// `desc` will be added to the title of each bench.
fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSpec, desc: &str) { fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSpec, desc: &str) {
let state_clone = state.clone();
let spec_clone = spec.clone();
c.bench(
&format!("epoch_process_with_caches_{}", desc),
Benchmark::new("full run", move |b| {
b.iter_with_setup(
|| state_clone.clone(),
|mut state| black_box(per_epoch_processing(&mut state, &spec_clone).unwrap()),
)
})
.sample_size(10),
);
let state_clone = state.clone(); let state_clone = state.clone();
let spec_clone = spec.clone(); let spec_clone = spec.clone();
c.bench( c.bench(
@ -93,7 +83,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(calculate_active_validator_indices(&mut state, &spec_clone)), |mut state| black_box(calculate_active_validator_indices(&mut state, &spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -109,7 +99,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
}, },
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -130,7 +120,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
}, },
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -143,7 +133,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(process_eth1_data(&mut state, &spec_clone)), |mut state| black_box(process_eth1_data(&mut state, &spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -156,7 +146,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(calculate_attester_sets(&mut state, &spec_clone).unwrap()), |mut state| black_box(calculate_attester_sets(&mut state, &spec_clone).unwrap()),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -199,7 +189,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(process_crosslinks(&mut state, &spec_clone).unwrap()), |mut state| black_box(process_crosslinks(&mut state, &spec_clone).unwrap()),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let mut state_clone = state.clone(); let mut state_clone = state.clone();
@ -232,7 +222,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
}, },
) )
}) })
.sample_size(10), .sample_size(SMALL_BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -245,7 +235,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(state.process_ejections(&spec_clone)), |mut state| black_box(state.process_ejections(&spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let mut state_clone = state.clone(); let mut state_clone = state.clone();
@ -282,7 +272,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(process_validator_registry(&mut state, &spec_clone)), |mut state| black_box(process_validator_registry(&mut state, &spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -297,7 +287,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
}, },
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -310,7 +300,7 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(update_latest_slashed_balances(&mut state, &spec_clone)), |mut state| black_box(update_latest_slashed_balances(&mut state, &spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
); );
let state_clone = state.clone(); let state_clone = state.clone();
@ -323,6 +313,19 @@ fn bench_epoch_processing(c: &mut Criterion, state: &BeaconState, spec: &ChainSp
|mut state| black_box(clean_attestations(&mut state, &spec_clone)), |mut state| black_box(clean_attestations(&mut state, &spec_clone)),
) )
}) })
.sample_size(10), .sample_size(BENCHING_SAMPLE_SIZE),
);
let state_clone = state.clone();
let spec_clone = spec.clone();
c.bench(
&format!("epoch_process_with_caches_{}", desc),
Benchmark::new("per_epoch_processing", move |b| {
b.iter_with_setup(
|| state_clone.clone(),
|mut state| black_box(per_epoch_processing(&mut state, &spec_clone).unwrap()),
)
})
.sample_size(SMALL_BENCHING_SAMPLE_SIZE),
); );
} }