fn resolve_ws(c: &mut Criterion) {
    setup();
    let mut group = c.benchmark_group("resolve_ws");
    for (ws_name, ws_root) in workspaces() {
        let config = make_config(&ws_root);
        // The resolver info is initialized only once in a lazy fashion. This
        // allows criterion to skip this workspace if the user passes a filter
        // on the command-line (like `cargo bench -- resolve_ws/tikv`).
        //
        // Due to the way criterion works, it tends to only run the inner
        // iterator once, and we don't want to call `do_resolve` in every
        // "step", since that would just be some useless work.
        let mut lazy_info = None;
        group.bench_function(&ws_name, |b| {
            let ResolveInfo {
                ws,
                requested_kinds,
                target_data,
                cli_features,
                specs,
                has_dev_units,
                force_all_targets,
                ..
            } = lazy_info.get_or_insert_with(|| do_resolve(&config, &ws_root));
            b.iter(|| {
                cargo::ops::resolve_ws_with_opts(
                    ws,
                    target_data,
                    requested_kinds,
                    cli_features,
                    specs,
                    *has_dev_units,
                    *force_all_targets,
                )
                .unwrap();
            })
        });
    }
    group.finish();
}
/// Benchmark of the full `resovle_ws_with_opts` which runs the resolver
/// twice, the feature resolver, and more. This is a major component of a
/// regular cargo build.
Benchmark of the full `resovle_ws_with_opts` which runs the resolver
twice, the feature resolver, and more. This is a major component of a
regular cargo build.
Benchmark of the full ` resovle_ws_with_opts ` which runs the resolver twice the feature resolver and more . This is a major component of a regular cargo build .
fn resolve_ws(c: &mut Criterion) {
    setup();
    let mut group = c.benchmark_group("resolve_ws");
    for (ws_name, ws_root) in workspaces() {
        let config = make_config(&ws_root);
        // The resolver info is initialized only once in a lazy fashion. This
        // allows criterion to skip this workspace if the user passes a filter
        // on the command-line (like `cargo bench -- resolve_ws/tikv`).
        //
        // Due to the way criterion works, it tends to only run the inner
        // iterator once, and we don't want to call `do_resolve` in every
        // "step", since that would just be some useless work.
        let mut lazy_info = None;
        group.bench_function(&ws_name, |b| {
            let ResolveInfo {
                ws,
                requested_kinds,
                target_data,
                cli_features,
                specs,
                has_dev_units,
                force_all_targets,
                ..
            } = lazy_info.get_or_insert_with(|| do_resolve(&config, &ws_root));
            b.iter(|| {
                cargo::ops::resolve_ws_with_opts(
                    ws,
                    target_data,
                    requested_kinds,
                    cli_features,
                    specs,
                    *has_dev_units,
                    *force_all_targets,
                )
                .unwrap();
            })
        });
    }
    group.finish();
}
fn resolve_ws ( c : & mut Criterion ) { setup ( ) ; let mut group = c . benchmark_group ( " " ) ; for ( ws_name , ws_root ) in workspaces ( ) { let config = make_config ( & ws_root ) ; // The resolver info is initialized only once in a lazy fashion. This // allows criterion to skip this workspace if the user passes a filter // on the command-line (like `cargo bench -- resolve_ws/tikv`). // // Due to the way criterion works, it tends to only run the inner // iterator once, and we don't want to call `do_resolve` in every // "step", since that would just be some useless work. let mut lazy_info = None ; group . bench_function ( & ws_name , | b | { let ResolveInfo { ws , requested_kinds , target_data , cli_features , specs , has_dev_units , force_all_targets , .. } = lazy_info . get_or_insert_with ( | | do_resolve ( & config , & ws_root ) ) ; b . iter ( | | { cargo :: ops :: resolve_ws_with_opts ( ws , target_data , requested_kinds , cli_features , specs , * has_dev_units , * force_all_targets , ) . unwrap ( ) ; } ) } ) ; } group . finish ( ) ; }
Benchmark of the full `resovle_ws_with_opts` which runs the resolver
twice, the feature resolver, and more.
Benchmark of the full ` resovle_ws_with_opts ` which runs the resolver twice the feature resolver and more .
c
&mut Criterion
c
&mut Criterion