| #![feature(test)] |
| |
| extern crate petgraph; |
| extern crate test; |
| |
| use test::Bencher; |
| use petgraph::prelude::*; |
| |
| #[allow(dead_code)] |
| mod common; |
| use common::*; |
| |
| use petgraph::stable_graph::node_index; |
| |
| #[bench] |
| fn full_edges_default(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.edges(node_index(1)).count()) |
| } |
| |
| #[bench] |
| fn full_edges_out(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.edges_directed(node_index(1), Outgoing).count()) |
| } |
| |
| #[bench] |
| fn full_edges_in(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.edges_directed(node_index(1), Incoming).count()) |
| } |
| |
| #[bench] |
| fn neighbors_default(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.neighbors(node_index(1)).count()) |
| } |
| |
| #[bench] |
| fn neighbors_out(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.neighbors_directed(node_index(1), Outgoing).count()) |
| } |
| |
| #[bench] |
| fn neighbors_in(bench: &mut Bencher) { |
| let a = stable_digraph().full_a(); |
| bench.iter(|| a.neighbors_directed(node_index(1), Incoming).count()) |
| } |
| |
| #[bench] |
| fn sccs_stable_graph(bench: &mut Bencher) { |
| let a = stable_digraph().bigger(); |
| bench.iter(|| petgraph::algo::kosaraju_scc(&a)); |
| } |
| |
| #[bench] |
| fn sccs_graph(bench: &mut Bencher) { |
| let a = digraph().bigger(); |
| bench.iter(|| petgraph::algo::kosaraju_scc(&a)); |
| } |
| |
| #[bench] |
| fn stable_graph_map(bench: &mut Bencher) { |
| let a = stable_digraph().bigger(); |
| bench.iter(|| a.map(|i, _| i, |i, _| i)); |
| } |
| |
| #[bench] |
| fn graph_map(bench: &mut Bencher) { |
| let a = digraph().bigger(); |
| bench.iter(|| a.map(|i, _| i, |i, _| i)); |
| } |
| |
| #[bench] |
| fn stable_graph_retain_nodes(bench: &mut Bencher) { |
| let mut a = stable_digraph().bigger(); |
| bench.iter(|| a.retain_nodes(|_gr, i| (i.index() + 1) % 3700 != 0)); |
| } |
| |
| #[bench] |
| fn stable_graph_retain_edges(bench: &mut Bencher) { |
| let mut a = stable_digraph().bigger(); |
| bench.iter(|| a.retain_edges(|_gr, i| (i.index() + 1) % 3700 != 0)); |
| } |