Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
83
third-party/vendor/diff/benches/benches.rs
vendored
Normal file
83
third-party/vendor/diff/benches/benches.rs
vendored
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
extern crate criterion;
|
||||
extern crate diff;
|
||||
|
||||
use criterion::Criterion;
|
||||
|
||||
criterion::criterion_group!(benches, bench_slice, bench_chars, bench_real_world);
|
||||
criterion::criterion_main!(benches);
|
||||
|
||||
fn bench_slice(c: &mut Criterion) {
|
||||
c.bench_function("empty", |b| {
|
||||
let slice = [0u8; 0];
|
||||
b.iter(|| ::diff::slice(&slice, &slice));
|
||||
});
|
||||
|
||||
c.bench_function("10 equal items", |b| {
|
||||
let slice = [0u8; 10];
|
||||
b.iter(|| ::diff::slice(&slice, &slice));
|
||||
});
|
||||
|
||||
c.bench_function("10 non-equal items", |b| {
|
||||
let (left, right) = ([0u8; 10], [1u8; 10]);
|
||||
b.iter(|| ::diff::slice(&left, &right));
|
||||
});
|
||||
|
||||
c.bench_function("100 equal items", |b| {
|
||||
let slice = [0u8; 100];
|
||||
b.iter(|| ::diff::slice(&slice, &slice));
|
||||
});
|
||||
|
||||
c.bench_function("100 non-equal items", |b| {
|
||||
let (left, right) = ([0u8; 100], [1u8; 100]);
|
||||
b.iter(|| ::diff::slice(&left, &right));
|
||||
});
|
||||
|
||||
c.bench_function("1000 equal items", |b| {
|
||||
let slice = [0u8; 1000];
|
||||
b.iter(|| ::diff::slice(&slice, &slice));
|
||||
});
|
||||
|
||||
c.bench_function("1000 non-equal items", |b| {
|
||||
let (left, right) = ([0u8; 1000], [1u8; 1000]);
|
||||
b.iter(|| ::diff::slice(&left, &right));
|
||||
});
|
||||
}
|
||||
|
||||
fn bench_chars(c: &mut Criterion) {
|
||||
c.bench_function("1024 byte string, last 256 different", |b| {
|
||||
let left = "?".repeat(768) + &"_".repeat(256);
|
||||
let right = "?".repeat(768) + &"!".repeat(256);
|
||||
assert_eq!(left.len(), right.len());
|
||||
b.iter(|| ::diff::chars(&left, &right));
|
||||
});
|
||||
}
|
||||
|
||||
fn bench_real_world(c: &mut Criterion) {
|
||||
let gitignores = std::fs::read_to_string("tests/data/gitignores.txt")
|
||||
.unwrap()
|
||||
.split("!!!")
|
||||
.filter_map(|str| (!str.is_empty()).then(|| str.into()))
|
||||
.collect::<Vec<String>>();
|
||||
|
||||
c.bench_function("diff::lines on gitignore files from rust-lang/rust", |b| {
|
||||
b.iter(|| {
|
||||
for (i, left) in gitignores.iter().enumerate() {
|
||||
// diff with previous 3, itself, and next 3
|
||||
for right in gitignores[i.saturating_sub(3)..(i + 3).min(gitignores.len())].iter() {
|
||||
::diff::lines(&left, &right);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
c.bench_function("diff::chars on gitignore files from rust-lang/rust", |b| {
|
||||
b.iter(|| {
|
||||
for (i, left) in gitignores.iter().enumerate() {
|
||||
// diff with previous 2, itself, and next 2
|
||||
for right in gitignores[i.saturating_sub(2)..(i + 2).min(gitignores.len())].iter() {
|
||||
::diff::chars(&left, &right);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue