mlua/benches/benchmark.rs

50 lines
1.1 KiB
Rust

#[macro_use]
extern crate criterion;
extern crate rlua;
use criterion::Criterion;
use rlua::prelude::*;
fn create_table(lua: Lua) -> Lua {
{
lua.create_table().unwrap();
}
lua
}
fn create_array(lua: Lua) -> Lua {
{
let table = lua.create_table().unwrap();
for i in 1..11 {
table.set(i, i).unwrap();
}
}
lua
}
fn create_string_table(lua: Lua) -> Lua {
{
let table = lua.create_table().unwrap();
for &s in &["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] {
let s = lua.create_string(s).unwrap();
table.set(s.clone(), s).unwrap();
}
}
lua
}
fn criterion_benchmark(c: &mut Criterion) {
c.bench_function("create_table", |b| {
b.iter_with_setup(|| Lua::new(), create_table)
});
c.bench_function("create_array", |b| {
b.iter_with_setup(|| Lua::new(), create_array)
});
c.bench_function("create_string_table", |b| {
b.iter_with_setup(|| Lua::new(), create_string_table)
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);