Enable bench and fix upload-perf

This commit is contained in:
Stephen Akridge
2018-09-24 10:20:58 -07:00
committed by sakridge
parent 35e6343d61
commit 6cdbdfbbcb
6 changed files with 16 additions and 17 deletions

View File

@ -3,6 +3,7 @@ extern crate bincode;
extern crate rand; extern crate rand;
extern crate rayon; extern crate rayon;
extern crate solana; extern crate solana;
extern crate solana_program_interface;
extern crate test; extern crate test;
use rand::{thread_rng, Rng}; use rand::{thread_rng, Rng};
@ -11,11 +12,11 @@ use solana::bank::Bank;
use solana::banking_stage::{BankingStage, NUM_THREADS}; use solana::banking_stage::{BankingStage, NUM_THREADS};
use solana::entry::Entry; use solana::entry::Entry;
use solana::mint::Mint; use solana::mint::Mint;
use solana::packet::{to_packets_chunked, PacketRecycler}; use solana::packet::to_packets_chunked;
use solana::pubkey::Pubkey;
use solana::signature::{KeypairUtil, Signature}; use solana::signature::{KeypairUtil, Signature};
use solana::system_transaction::SystemTransaction; use solana::system_transaction::SystemTransaction;
use solana::transaction::Transaction; use solana::transaction::Transaction;
use solana_program_interface::pubkey::Pubkey;
use std::iter; use std::iter;
use std::sync::mpsc::{channel, Receiver}; use std::sync::mpsc::{channel, Receiver};
use std::sync::Arc; use std::sync::Arc;
@ -47,7 +48,6 @@ fn bench_banking_stage_multi_accounts(bencher: &mut Bencher) {
let mint = Mint::new(mint_total); let mint = Mint::new(mint_total);
let (verified_sender, verified_receiver) = channel(); let (verified_sender, verified_receiver) = channel();
let packet_recycler = PacketRecycler::default();
let bank = Arc::new(Bank::new(&mint)); let bank = Arc::new(Bank::new(&mint));
let dummy = Transaction::system_move( let dummy = Transaction::system_move(
&mint.keypair(), &mint.keypair(),
@ -91,10 +91,10 @@ fn bench_banking_stage_multi_accounts(bencher: &mut Bencher) {
assert!(r.is_ok(), "sanity parallel execution"); assert!(r.is_ok(), "sanity parallel execution");
} }
bank.clear_signatures(); bank.clear_signatures();
let verified: Vec<_> = to_packets_chunked(&packet_recycler, &transactions.clone(), 192) let verified: Vec<_> = to_packets_chunked(&transactions.clone(), 192)
.into_iter() .into_iter()
.map(|x| { .map(|x| {
let len = x.read().packets.len(); let len = x.read().unwrap().packets.len();
(x, iter::repeat(1).take(len).collect()) (x, iter::repeat(1).take(len).collect())
}).collect(); }).collect();
let (_stage, signal_receiver) = let (_stage, signal_receiver) =

View File

@ -4,7 +4,6 @@ extern crate test;
use solana::hash::{hash, Hash}; use solana::hash::{hash, Hash};
use solana::ledger::{next_entries, reconstruct_entries_from_blobs, Block}; use solana::ledger::{next_entries, reconstruct_entries_from_blobs, Block};
use solana::packet::BlobRecycler;
use solana::signature::{Keypair, KeypairUtil}; use solana::signature::{Keypair, KeypairUtil};
use solana::system_transaction::SystemTransaction; use solana::system_transaction::SystemTransaction;
use solana::transaction::Transaction; use solana::transaction::Transaction;
@ -19,9 +18,8 @@ fn bench_block_to_blobs_to_block(bencher: &mut Bencher) {
let transactions = vec![tx0; 10]; let transactions = vec![tx0; 10];
let entries = next_entries(&zero, 1, transactions); let entries = next_entries(&zero, 1, transactions);
let blob_recycler = BlobRecycler::default();
bencher.iter(|| { bencher.iter(|| {
let blobs = entries.to_blobs(&blob_recycler); let blobs = entries.to_blobs();
assert_eq!(reconstruct_entries_from_blobs(blobs).unwrap(), entries); assert_eq!(reconstruct_entries_from_blobs(blobs).unwrap(), entries);
}); });
} }

View File

@ -4,7 +4,7 @@ extern crate rayon;
extern crate solana; extern crate solana;
extern crate test; extern crate test;
use solana::packet::{to_packets, PacketRecycler}; use solana::packet::to_packets;
use solana::sigverify; use solana::sigverify;
use solana::system_transaction::test_tx; use solana::system_transaction::test_tx;
use test::Bencher; use test::Bencher;
@ -14,8 +14,7 @@ fn bench_sigverify(bencher: &mut Bencher) {
let tx = test_tx(); let tx = test_tx();
// generate packet vector // generate packet vector
let packet_recycler = PacketRecycler::default(); let batches = to_packets(&vec![tx; 128]);
let batches = to_packets(&packet_recycler, &vec![tx; 128]);
// verify packets // verify packets
bencher.iter(|| { bencher.iter(|| {

View File

@ -4,11 +4,11 @@ steps:
env: env:
CARGO_TARGET_CACHE_NAME: "stable" CARGO_TARGET_CACHE_NAME: "stable"
timeout_in_minutes: 30 timeout_in_minutes: 30
# - command: "ci/docker-run.sh solanalabs/rust-nightly ci/test-bench.sh" - command: "ci/docker-run.sh solanalabs/rust-nightly ci/test-bench.sh"
# name: "bench [public]" name: "bench [public]"
# env: env:
# CARGO_TARGET_CACHE_NAME: "nightly" CARGO_TARGET_CACHE_NAME: "nightly"
# timeout_in_minutes: 30 timeout_in_minutes: 30
- command: "ci/shellcheck.sh" - command: "ci/shellcheck.sh"
name: "shellcheck [public]" name: "shellcheck [public]"
timeout_in_minutes: 20 timeout_in_minutes: 20

View File

@ -10,6 +10,8 @@ _() {
"$@" "$@"
} }
set -o pipefail
BENCH_FILE=bench_output.log BENCH_FILE=bench_output.log
_ cargo bench --features=unstable --verbose -- -Z unstable-options --format=json | tee $BENCH_FILE _ cargo bench --features=unstable --verbose -- -Z unstable-options --format=json | tee $BENCH_FILE
_ cargo run --release --bin solana-upload-perf -- $BENCH_FILE _ cargo run --release --bin solana-upload-perf -- $BENCH_FILE

View File

@ -35,7 +35,7 @@ fn main() {
let median = v["median"].to_string().parse().unwrap(); let median = v["median"].to_string().parse().unwrap();
let deviation = v["deviation"].to_string().parse().unwrap(); let deviation = v["deviation"].to_string().parse().unwrap();
metrics::submit( metrics::submit(
influxdb::Point::new(&v["name"].to_string()) influxdb::Point::new(&v["name"].as_str().unwrap().trim_matches('\"'))
.add_field("median", influxdb::Value::Integer(median)) .add_field("median", influxdb::Value::Integer(median))
.add_field("deviation", influxdb::Value::Integer(deviation)) .add_field("deviation", influxdb::Value::Integer(deviation))
.add_field( .add_field(