Non-working yet benchmark.

This commit is contained in:
Jordan Petridis 2018-01-13 08:31:16 +02:00
parent e4d77a6ba4
commit e162f8fd3f
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6

View File

@ -1,19 +1,29 @@
#![feature(test)] #![feature(test)]
extern crate diesel; extern crate diesel;
extern crate futures;
extern crate hammond_data; extern crate hammond_data;
extern crate hyper;
extern crate hyper_tls;
extern crate rand; extern crate rand;
extern crate rayon; extern crate rayon;
extern crate rss; extern crate rss;
extern crate tempdir; extern crate tempdir;
extern crate test; extern crate test;
extern crate tokio_core;
use rayon::prelude::*; use rayon::prelude::*;
use test::Bencher; 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::Source;
use hammond_data::feed::*; use hammond_data::feed::*;
use hammond_data::database::truncate_db;
use std::io::BufReader; use std::io::BufReader;
@ -39,7 +49,7 @@ fn index_urls() {
let s = Source::from_url(url).unwrap(); let s = Source::from_url(url).unwrap();
// parse it into a channel // parse it into a channel
let chan = rss::Channel::read_from(BufReader::new(buff)).unwrap(); let chan = rss::Channel::read_from(BufReader::new(buff)).unwrap();
Feed::from_channel_source(chan, s) Feed::from_channel_source(chan, s.id())
}) })
.collect(); .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();
});
}