Skip to content

Commit 4efe6c7

Browse files
author
Roland Peelen
committed
⚡ - Iter -> par_iter on package_tree build
build-package-tree time: [118.39 ms 120.47 ms 122.68 ms] change: [-52.142% -47.075% -40.879%] (p = 0.00 < 0.05) Performance has improved.
1 parent 343cc0c commit 4efe6c7

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

benches/base_bench.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
use criterion::{criterion_group, criterion_main, Criterion};
22
use rewatch::build;
3+
use rewatch::package_tree;
4+
use rewatch::helpers;
35

46
use std::fs::File;
57
use std::io::prelude::*;
68

79
fn criterion_benchmark(c: &mut Criterion) {
10+
c.bench_function("build-package-tree", |b| {
11+
// Folder for the testrepo
12+
let folder = "walnut_monorepo";
13+
let project_root = helpers::get_abs_path(folder);
14+
15+
b.iter(|| {
16+
package_tree::make(&project_root);
17+
})
18+
});
19+
820
c.bench_function("clean-build-change-build", |b| {
921
// Folder for the testrepo
1022
let folder = "testrepo";

src/package_tree.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ impl PartialEq for Package {
2929
}
3030
impl Eq for Package {}
3131
impl Hash for Package {
32-
fn hash<H: Hasher>(&self, state: &mut H) {
33-
self.name.hash(state);
32+
fn hash<H: Hasher>(&self, _state: &mut H) {
33+
blake3::hash(&self.name.as_bytes());
3434
}
3535
}
3636

@@ -70,8 +70,7 @@ fn get_source_dirs(
7070
if !full_recursive {
7171
subdirs
7272
.unwrap_or(vec![])
73-
// I don't think we do any io here so par_iter is probably slower than iter
74-
.iter()
73+
.par_iter()
7574
.map(|subdir| get_source_dirs(&full_path, subdir.to_owned()))
7675
.collect::<Vec<AHashSet<(String, bsconfig::PackageSource)>>>()
7776
.into_iter()
@@ -81,12 +80,6 @@ fn get_source_dirs(
8180
source_folders
8281
}
8382

84-
// fn add_bsconfig_package(
85-
// map: &'a mut AHashMap<String, Package>,
86-
// bsconfig: bsconfig::T,
87-
// ) -> (&'a mut AHashMap<String, Package>, Vec(String)) {
88-
// }
89-
9083
fn get_package_dir(package_name: &str, is_root: bool, project_root: &str) -> String {
9184
if is_root {
9285
project_root.to_owned()
@@ -125,7 +118,6 @@ fn build_package<'a>(
125118
let mut source_folders: AHashSet<(String, bsconfig::PackageSource)> =
126119
AHashSet::new();
127120
sources
128-
// I don't think we do any IO here so probably faster to just do iter
129121
.iter()
130122
.map(|source| get_source_dirs(&package_dir, source.to_owned()))
131123
.collect::<Vec<AHashSet<(String, bsconfig::PackageSource)>>>()

0 commit comments

Comments
 (0)