From e162f8fd3f9ac90b58ee0b864e260eb50dacd5e1 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Sat, 13 Jan 2018 08:31:16 +0200 Subject: [PATCH] Non-working yet benchmark. --- hammond-data/benches/bench.rs | 48 ++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/hammond-data/benches/bench.rs b/hammond-data/benches/bench.rs index d721878..d6dd37d 100644 --- a/hammond-data/benches/bench.rs +++ b/hammond-data/benches/bench.rs @@ -1,19 +1,29 @@ #![feature(test)] extern crate diesel; +extern crate futures; extern crate hammond_data; +extern crate hyper; +extern crate hyper_tls; extern crate rand; extern crate rayon; extern crate rss; extern crate tempdir; extern crate test; +extern crate tokio_core; use rayon::prelude::*; use test::Bencher; +use tokio_core::reactor::Core; +use hyper::Client; +use hyper_tls::HttpsConnector; +use futures::future::*; + use hammond_data::Source; use hammond_data::feed::*; +use hammond_data::database::truncate_db; use std::io::BufReader; @@ -39,7 +49,7 @@ fn index_urls() { let s = Source::from_url(url).unwrap(); // parse it into a channel let chan = rss::Channel::read_from(BufReader::new(buff)).unwrap(); - Feed::from_channel_source(chan, s) + Feed::from_channel_source(chan, s.id()) }) .collect(); @@ -64,3 +74,39 @@ fn bench_index_unchanged_feeds(b: &mut Bencher) { } }); } + +#[bench] +fn bench_get_normal_feeds(b: &mut Bencher) { + truncate_db().unwrap(); + + b.iter(|| { + URLS.iter().for_each(|&(_, url)| { + let mut s = Source::from_url(url).unwrap(); + s.into_feed(true).unwrap(); + }) + }); +} + +#[bench] +fn bench_get_future_feeds(b: &mut Bencher) { + truncate_db().unwrap(); + + b.iter(|| { + let mut core = Core::new().unwrap(); + let mut handle = core.handle(); + let mut client = Client::configure() + .connector(HttpsConnector::new(4, &handle).unwrap()) + .build(&handle); + + let mut foo: Vec<_>; + + URLS.iter().for_each(|&(_, url)| { + let mut s = Source::from_url(url).unwrap(); + let future = s.into_fututre_feed(&mut client, true); + foo.push(future); + }); + + let work = join_all(foo); + core.run(work).unwrap(); + }); +}