BlogDocs

feat(dfs): make DFS more efficient by using IndexMap rather than Vec(#553)

Merging
better-dfs
into
main
-16%
IMPROVEMENTS
2
REGRESSIONS
4
UNTOUCHED
28
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Failing

fill-corner_to_corner_dijkstraRegression
benches/algos-fill.rs::benches::corner_to_corner_dijkstra::fill-corner_to_corner_dijkstra
-16%
1.4 ms
1.7 ms
no_path_astarRegression
benches/algos.rs::benches::no_path_astar::no_path_astar
-11%
1.5 ms
1.7 ms
no_path_dijkstraRegression
benches/algos.rs::benches::no_path_dijkstra::no_path_dijkstra
-15%
1.3 ms
1.6 ms
no_path_fringeRegression
benches/algos.rs::benches::no_path_fringe::no_path_fringe
-10%
1.6 ms
1.8 ms

Passing

fill-corner_to_corner_astar
benches/algos-fill.rs::benches::corner_to_corner_astar::fill-corner_to_corner_astar
0%
125.8 µs
125.3 µs
fill-corner_to_corner_bfs
benches/algos-fill.rs::benches::corner_to_corner_bfs::fill-corner_to_corner_bfs
-7%
1.3 ms
1.4 ms
fill-corner_to_corner_dfs
benches/algos-fill.rs::benches::corner_to_corner_dfs::fill-corner_to_corner_dfs
+97%
4.5 ms
2.3 ms
fill-corner_to_corner_fringe
benches/algos-fill.rs::benches::corner_to_corner_fringe::fill-corner_to_corner_fringe
-1%
105.7 µs
106.3 µs
fill-corner_to_corner_idastar
benches/algos-fill.rs::benches::corner_to_corner_idastar::fill-corner_to_corner_idastar
+5%
159.1 µs
151.1 µs
fill-corner_to_corner_iddfs
benches/algos-fill.rs::benches::corner_to_corner_iddfs::fill-corner_to_corner_iddfs
0%
3.9 ms
3.9 ms
fill-no_path_astar
benches/algos-fill.rs::benches::no_path_astar::fill-no_path_astar
+2%
1.6 ms
1.5 ms
fill-no_path_bfs
benches/algos-fill.rs::benches::no_path_bfs::fill-no_path_bfs
-5%
1.4 ms
1.5 ms
fill-no_path_dijkstra
benches/algos-fill.rs::benches::no_path_dijkstra::fill-no_path_dijkstra
+6%
1.2 ms
1.1 ms
fill-no_path_fringe
benches/algos-fill.rs::benches::no_path_fringe::fill-no_path_fringe
0%
1.3 ms
1.3 ms
separate_components
benches/algos.rs::benches::bench_separate_components::separate_components
0%
2.1 ms
2.1 ms
corner_to_corner_astar
benches/algos.rs::benches::corner_to_corner_astar::corner_to_corner_astar
0%
84.7 µs
84.7 µs
corner_to_corner_bfs
benches/algos.rs::benches::corner_to_corner_bfs::corner_to_corner_bfs
+1%
1.2 ms
1.2 ms
corner_to_corner_dfs
benches/algos.rs::benches::corner_to_corner_dfs::corner_to_corner_dfs
×19
31.4 ms
1.7 ms
corner_to_corner_dijkstra
benches/algos.rs::benches::corner_to_corner_dijkstra::corner_to_corner_dijkstra
-4%
1.5 ms
1.6 ms
corner_to_corner_fringe
benches/algos.rs::benches::corner_to_corner_fringe::corner_to_corner_fringe
-1%
91.7 µs
92.8 µs
corner_to_corner_idastar
benches/algos.rs::benches::corner_to_corner_idastar::corner_to_corner_idastar
0%
127 µs
126.6 µs
corner_to_corner_iddfs
benches/algos.rs::benches::corner_to_corner_iddfs::corner_to_corner_iddfs
0%
1.4 ms
1.4 ms
no_path_bfs
benches/algos.rs::benches::no_path_bfs::no_path_bfs
+1%
1 ms
1 ms
wikipedia_example_dense
benches/edmondskarp.rs::benches::wikipedia_example_dense::wikipedia_example_dense
0%
30.3 µs
30.3 µs
wikipedia_example_sparse
benches/edmondskarp.rs::benches::wikipedia_example_sparse::wikipedia_example_sparse
0%
45.8 µs
45.7 µs
Compare kuhn_munkres with different input sizes[128]
benches/kuhn_munkres.rs::benches::compare_size::Compare kuhn_munkres with different input sizes[128]
0%
2.6 ms
2.6 ms
Compare kuhn_munkres with different input sizes[256]
benches/kuhn_munkres.rs::benches::compare_size::Compare kuhn_munkres with different input sizes[256]
0%
16.7 ms
16.7 ms
Compare kuhn_munkres with different input sizes[32]
benches/kuhn_munkres.rs::benches::compare_size::Compare kuhn_munkres with different input sizes[32]
0%
84.4 µs
84.4 µs
Compare kuhn_munkres with different input sizes[512]
benches/kuhn_munkres.rs::benches::compare_size::Compare kuhn_munkres with different input sizes[512]
0%
500.6 ms
500.6 ms
Compare kuhn_munkres with different input sizes[64]
benches/kuhn_munkres.rs::benches::compare_size::Compare kuhn_munkres with different input sizes[64]
0%
420.3 µs
420.3 µs
transpose
benches/matrices.rs::benches::transpose_benchmark::transpose
0%
42.2 µs
42.2 µs
transpose_non_square
benches/matrices.rs::benches::transpose_non_square_benchmark::transpose_non_square
0%
159.8 µs
159.8 µs
arena
benches/movingai.rs::benches::arena::arena
0%
42 ms
42 ms
separate_components
benches/separate_components.rs::benches::bench_separate_components::separate_components
0%
7.6 ms
7.6 ms

Commits

Click on a commit to change the comparison range
base
main
1ef8a9a
-16%
feat(dfs): make DFS more efficient by using IndexSet internally This requires an API change as using an `IndexSet` requires the type to implement `Hash`.
884e7d5
3 months ago by samueltardieu
ResourcesHomePricingDocsBlogGitHub
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.