Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  combinations.rs   Sprache: unbekannt

 
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use itertools::Itertools;

// approximate 100_000 iterations for each combination
const N1: usize = 100_000;
const N2: usize = 448;
const N3: usize = 86;
const N4: usize = 41;
const N14: usize = 21;

fn comb_for1(c: &mut Criterion) {
    c.bench_function("comb for1", move |b| {
        b.iter(|| {
            for i in 0..N1 {
                black_box(vec![i]);
            }
        })
    });
}

fn comb_for2(c: &mut Criterion) {
    c.bench_function("comb for2", move |b| {
        b.iter(|| {
            for i in 0..N2 {
                for j in (i + 1)..N2 {
                    black_box(vec![i, j]);
                }
            }
        })
    });
}

fn comb_for3(c: &mut Criterion) {
    c.bench_function("comb for3", move |b| {
        b.iter(|| {
            for i in 0..N3 {
                for j in (i + 1)..N3 {
                    for k in (j + 1)..N3 {
                        black_box(vec![i, j, k]);
                    }
                }
            }
        })
    });
}

fn comb_for4(c: &mut Criterion) {
    c.bench_function("comb for4", move |b| {
        b.iter(|| {
            for i in 0..N4 {
                for j in (i + 1)..N4 {
                    for k in (j + 1)..N4 {
                        for l in (k + 1)..N4 {
                            black_box(vec![i, j, k, l]);
                        }
                    }
                }
            }
        })
    });
}

fn comb_c1(c: &mut Criterion) {
    c.bench_function("comb c1", move |b| {
        b.iter(|| {
            for combo in (0..N1).combinations(1) {
                black_box(combo);
            }
        })
    });
}

fn comb_c2(c: &mut Criterion) {
    c.bench_function("comb c2", move |b| {
        b.iter(|| {
            for combo in (0..N2).combinations(2) {
                black_box(combo);
            }
        })
    });
}

fn comb_c3(c: &mut Criterion) {
    c.bench_function("comb c3", move |b| {
        b.iter(|| {
            for combo in (0..N3).combinations(3) {
                black_box(combo);
            }
        })
    });
}

fn comb_c4(c: &mut Criterion) {
    c.bench_function("comb c4", move |b| {
        b.iter(|| {
            for combo in (0..N4).combinations(4) {
                black_box(combo);
            }
        })
    });
}

fn comb_c14(c: &mut Criterion) {
    c.bench_function("comb c14", move |b| {
        b.iter(|| {
            for combo in (0..N14).combinations(14) {
                black_box(combo);
            }
        })
    });
}

criterion_group!(
    benches,
    comb_for1,
    comb_for2,
    comb_for3,
    comb_for4,
    comb_c1,
    comb_c2,
    comb_c3,
    comb_c4,
    comb_c14,
);
criterion_main!(benches);

[ Dauer der Verarbeitung: 0.23 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge