47 lines
1.1 KiB
Plaintext
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(); |