#[macro_use]
extern crate criterion;
use criterion::Criterion;
extern crate arrow;
use arrow::array::*;
use arrow::buffer::Buffer;
use arrow::datatypes::*;
fn array_from_vec(n: usize) {
let mut v: Vec<u8> = Vec::with_capacity(n);
for i in 0..n {
v.push((i & 0xffff) as u8);
}
let arr_data = ArrayDataBuilder::new(DataType::Int32)
.add_buffer(Buffer::from(v))
.build();
criterion::black_box(Int32Array::from(arr_data));
}
fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("array_from_vec 128", |b| b.iter(|| array_from_vec(128)));
c.bench_function("array_from_vec 256", |b| b.iter(|| array_from_vec(256)));
c.bench_function("array_from_vec 512", |b| b.iter(|| array_from_vec(512)));
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);