diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /vendor/petgraph/benches/ograph.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/petgraph/benches/ograph.rs')
-rw-r--r-- | vendor/petgraph/benches/ograph.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/petgraph/benches/ograph.rs b/vendor/petgraph/benches/ograph.rs new file mode 100644 index 000000000..d3f29869c --- /dev/null +++ b/vendor/petgraph/benches/ograph.rs @@ -0,0 +1,52 @@ +#![feature(test)] + +extern crate petgraph; +extern crate test; + +use petgraph::graph::Graph; + +#[bench] +fn bench_inser(b: &mut test::Bencher) { + let mut og = Graph::new(); + let fst = og.add_node(0i32); + for x in 1..125 { + let n = og.add_node(x); + og.add_edge(fst, n, ()); + } + b.iter(|| og.add_node(1)) +} + +#[bench] +fn bench_add_edge(b: &mut test::Bencher) { + let mut og = Graph::new(); + for _ in 0..100 { + og.add_node(()); + } + + b.iter(|| { + for (a, b) in og.node_indices().zip(og.node_indices().skip(1)) { + og.add_edge(a, b, ()); + } + og.clear_edges(); + }) +} + +#[bench] +fn bench_remove(b: &mut test::Bencher) { + // removal is very slow in a big graph. + // and this one doesn't even have many nodes. + let mut og = Graph::new(); + let fst = og.add_node(0i32); + let mut prev = fst; + for x in 1..1250 { + let n = og.add_node(x); + og.add_edge(prev, n, ()); + prev = n; + } + //println!("{}", og); + b.iter(|| { + for _ in 0..100 { + og.remove_node(fst); + } + }) +} |