Nasal-Interpreter/test/module_test.nas

47 lines
1.1 KiB
Plaintext

use std.os;
use std.dylib;
use module.libfib;
println(keys(libfib));
libfib.test_ghost();
println("[keys ] ", keys(libfib));
var tm = maketimestamp();
tm.stamp();
println("[result] ", libfib.fib(35));
println("[time ] ", tm.elapsedMSec()," ms");
tm.stamp();
println("[result] ", libfib.qfib(35));
println("[time ] ", tm.elapsedMSec()," ms");
println();
func() {
for (var i = 0; i<256; i += 1) {
var tmp = []; # try trigger gc here to test delete ghost
}
println();
}();
var speed_test = func() {
var dd = dylib.dlopen("libfib");
println("[dylib ] ", dd);
var fd = dd.quick_fib;
var vec_call = dylib.dlcall;
var invoke = dylib.limitcall(1);
var tm = maketimestamp();
for (var t=0; t<10; t+=1) {
tm.stamp();
for (var i=0; i<5e5; i+=1) {
invoke(fd, 40);
}
println("[time ] limited call: ", int(5e5/tm.elapsedMSec()), " call/ms");
tm.stamp();
for (var i=0; i<5e5; i+=1) {
vec_call(fd, 40);
}
println("[time ] dynamic call: ", int(5e5/tm.elapsedMSec()), " call/ms");
}
}
speed_test();