Merge pull request #6080 from Vurich/ethash
Unroll loops in light_compute
This commit is contained in:
@@ -16,10 +16,15 @@
|
||||
|
||||
//! Ethash implementation
|
||||
//! See https://github.com/ethereum/wiki/wiki/Ethash
|
||||
|
||||
#![cfg_attr(feature = "benches", feature(test))]
|
||||
|
||||
extern crate primal;
|
||||
extern crate sha3;
|
||||
extern crate parking_lot;
|
||||
|
||||
#[macro_use]
|
||||
extern crate crunchy;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
mod compute;
|
||||
@@ -128,3 +133,27 @@ fn test_lru() {
|
||||
assert_eq!(ethash.cache.lock().recent_epoch.unwrap(), 2);
|
||||
assert_eq!(ethash.cache.lock().prev_epoch.unwrap(), 0);
|
||||
}
|
||||
|
||||
#[cfg(feature = "benches")]
|
||||
mod benchmarks {
|
||||
extern crate test;
|
||||
|
||||
use compute::{Light, light_compute, SeedHashCompute};
|
||||
use self::test::Bencher;
|
||||
|
||||
#[bench]
|
||||
fn bench_light_compute(b: &mut Bencher) {
|
||||
let hash = [0xf5, 0x7e, 0x6f, 0x3a, 0xcf, 0xc0, 0xdd, 0x4b, 0x5b, 0xf2, 0xbe, 0xe4, 0x0a, 0xb3, 0x35, 0x8a, 0xa6, 0x87, 0x73, 0xa8, 0xd0, 0x9f, 0x5e, 0x59, 0x5e, 0xab, 0x55, 0x94, 0x05, 0x52, 0x7d, 0x72];
|
||||
let nonce = 0xd7b3ac70a301a249;
|
||||
let light = Light::new(486382);
|
||||
|
||||
b.iter(|| light_compute(&light, &hash, nonce));
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_seedhash(b: &mut Bencher) {
|
||||
let seed_compute = SeedHashCompute::new();
|
||||
|
||||
b.iter(|| seed_compute.get_seedhash(486382));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user