Skip to content

Commit 0e96399

Browse files
committed
Move benchmarks to benches module
This ensures that the benchmarks are in a separate crate and linked against the smallvec dynamic library rather than being compiled together.
1 parent 1714fbd commit 0e96399

File tree

4 files changed

+51
-57
lines changed

4 files changed

+51
-57
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ rust:
66
script: |
77
cargo build --verbose &&
88
cargo test --verbose &&
9-
([ $TRAVIS_RUST_VERSION != nightly ] || cargo test --verbose --features benchmarks) &&
10-
([ $TRAVIS_RUST_VERSION != nightly ] || cargo bench --verbose --features benchmarks bench)
9+
([ $TRAVIS_RUST_VERSION != nightly ] || cargo bench --verbose bench)
1110
notifications:
1211
webhooks: http://build.servo.org:54856/travis

Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,3 @@ documentation = "http://doc.servo.org/smallvec/"
1313
name = "smallvec"
1414
path = "lib.rs"
1515
doctest = false
16-
17-
[features]
18-
benchmarks = []

benches/bench.rs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#![feature(test)]
2+
3+
extern crate smallvec;
4+
extern crate test;
5+
6+
use smallvec::SmallVec;
7+
use self::test::Bencher;
8+
9+
#[bench]
10+
fn bench_push(b: &mut Bencher) {
11+
b.iter(|| {
12+
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
13+
for x in 0..100 {
14+
vec.push(x);
15+
}
16+
vec
17+
});
18+
}
19+
20+
#[bench]
21+
fn bench_insert(b: &mut Bencher) {
22+
b.iter(|| {
23+
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
24+
for x in 0..100 {
25+
vec.insert(0, x);
26+
}
27+
vec
28+
});
29+
}
30+
31+
#[bench]
32+
fn bench_extend(b: &mut Bencher) {
33+
b.iter(|| {
34+
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
35+
vec.extend(0..100);
36+
vec
37+
});
38+
}
39+
40+
#[bench]
41+
fn bench_pushpop(b: &mut Bencher) {
42+
b.iter(|| {
43+
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
44+
for x in 0..100 {
45+
vec.push(x);
46+
vec.pop();
47+
}
48+
vec
49+
});
50+
}

lib.rs

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
//! Small vectors in various sizes. These store a certain number of elements inline and fall back
66
//! to the heap for larger allocations.
77
8-
#![cfg_attr(feature = "benchmarks", feature(test))]
9-
108
use std::borrow::{Borrow, BorrowMut};
119
use std::cmp;
1210
use std::fmt;
@@ -1010,53 +1008,3 @@ pub mod tests {
10101008
assert_eq!(vec.drain().len(), 3);
10111009
}
10121010
}
1013-
1014-
#[cfg(all(feature = "benchmarks", test))]
1015-
mod bench {
1016-
extern crate test;
1017-
use SmallVec;
1018-
use self::test::Bencher;
1019-
1020-
#[bench]
1021-
fn bench_push(b: &mut Bencher) {
1022-
b.iter(|| {
1023-
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
1024-
for x in 0..100 {
1025-
vec.push(x);
1026-
}
1027-
vec
1028-
});
1029-
}
1030-
1031-
#[bench]
1032-
fn bench_insert(b: &mut Bencher) {
1033-
b.iter(|| {
1034-
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
1035-
for x in 0..100 {
1036-
vec.insert(0, x);
1037-
}
1038-
vec
1039-
});
1040-
}
1041-
1042-
#[bench]
1043-
fn bench_extend(b: &mut Bencher) {
1044-
b.iter(|| {
1045-
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
1046-
vec.extend(0..100);
1047-
vec
1048-
});
1049-
}
1050-
1051-
#[bench]
1052-
fn bench_pushpop(b: &mut Bencher) {
1053-
b.iter(|| {
1054-
let mut vec: SmallVec<[u64; 16]> = SmallVec::new();
1055-
for x in 0..100 {
1056-
vec.push(x);
1057-
vec.pop();
1058-
}
1059-
vec
1060-
});
1061-
}
1062-
}

0 commit comments

Comments
 (0)