Split core and standard libraries into packages.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
///! Test evaluating expressions
|
||||
extern crate test;
|
||||
|
||||
use rhai::{Array, Engine, Map, RegisterFn, INT};
|
||||
use rhai::{Array, CorePackage, Engine, Map, Package, RegisterFn, INT};
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
@@ -16,6 +16,16 @@ fn bench_engine_new_raw(bench: &mut Bencher) {
|
||||
bench.iter(|| Engine::new_raw());
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_engine_new_raw_core(bench: &mut Bencher) {
|
||||
let package = CorePackage::new();
|
||||
|
||||
bench.iter(|| {
|
||||
let mut engine = Engine::new_raw();
|
||||
engine.load_package(package.get());
|
||||
});
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_engine_register_fn(bench: &mut Bencher) {
|
||||
fn hello(a: INT, b: Array, c: Map) -> bool {
|
||||
|
@@ -3,7 +3,7 @@
|
||||
///! Test 1,000 iterations
|
||||
extern crate test;
|
||||
|
||||
use rhai::{Engine, OptimizationLevel, Scope, INT};
|
||||
use rhai::{Engine, OptimizationLevel, INT};
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
@@ -34,6 +34,8 @@ fn bench_iterations_fibonacci(bench: &mut Bencher) {
|
||||
fibonacci(n-1) + fibonacci(n-2)
|
||||
}
|
||||
}
|
||||
|
||||
fibonacci(20)
|
||||
"#;
|
||||
|
||||
let mut engine = Engine::new();
|
||||
@@ -41,9 +43,5 @@ fn bench_iterations_fibonacci(bench: &mut Bencher) {
|
||||
|
||||
let ast = engine.compile(script).unwrap();
|
||||
|
||||
bench.iter(|| {
|
||||
engine
|
||||
.call_fn::<_, INT>(&mut Scope::new(), &ast, "fibonacci", (20 as INT,))
|
||||
.unwrap()
|
||||
});
|
||||
bench.iter(|| engine.eval_ast::<INT>(&ast).unwrap());
|
||||
}
|
||||
|
Reference in New Issue
Block a user