diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs index 341fba105..64daedd0b 100644 --- a/bitcoin/src/blockdata/transaction.rs +++ b/bitcoin/src/blockdata/transaction.rs @@ -1966,20 +1966,17 @@ mod tests { #[cfg(bench)] mod benches { - use hex::test_hex_unwrap as hex; use io::sink; use test::{black_box, Bencher}; use super::*; - use crate::consensus::{deserialize, Encodable}; + use crate::consensus::{encode, Encodable}; const SOME_TX: &str = "0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000"; #[bench] pub fn bench_transaction_size(bh: &mut Bencher) { - let raw_tx = hex!(SOME_TX); - - let mut tx: Transaction = deserialize(&raw_tx).unwrap(); + let mut tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); bh.iter(|| { black_box(black_box(&mut tx).total_size()); @@ -1988,10 +1985,8 @@ mod benches { #[bench] pub fn bench_transaction_serialize(bh: &mut Bencher) { - let raw_tx = hex!(SOME_TX); - let tx: Transaction = deserialize(&raw_tx).unwrap(); - - let mut data = Vec::with_capacity(raw_tx.len()); + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); + let mut data = Vec::with_capacity(SOME_TX.len()); bh.iter(|| { let result = tx.consensus_encode(&mut data); @@ -2002,8 +1997,7 @@ mod benches { #[bench] pub fn bench_transaction_serialize_logic(bh: &mut Bencher) { - let raw_tx = hex!(SOME_TX); - let tx: Transaction = deserialize(&raw_tx).unwrap(); + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); bh.iter(|| { let size = tx.consensus_encode(&mut sink()); @@ -2013,10 +2007,18 @@ mod benches { #[bench] pub fn bench_transaction_deserialize(bh: &mut Bencher) { - let raw_tx = hex!(SOME_TX); + let raw_tx = as hex::FromHex>::from_hex(SOME_TX).unwrap(); bh.iter(|| { - let tx: Transaction = deserialize(&raw_tx).unwrap(); + let tx: Transaction = encode::deserialize(&raw_tx).unwrap(); + black_box(&tx); + }); + } + + #[bench] + pub fn bench_transaction_deserialize_hex(bh: &mut Bencher) { + bh.iter(|| { + let tx: Transaction = encode::deserialize_hex(SOME_TX).unwrap(); black_box(&tx); }); }