mirror of
https://github.com/ValKmjolnir/Nasal-Interpreter.git
synced 2026-07-23 03:18:43 +08:00
🐛 fix dynamic arguments load bug in nasal_vm
This commit is contained in:
@@ -1,13 +1,6 @@
|
||||
import.stl.sort;
|
||||
import.stl.process_bar;
|
||||
|
||||
for(var i=0;i<1954;i+=1){
|
||||
runtime.gc.extend("str");
|
||||
}
|
||||
for(var i=0;i<3907;i+=1){
|
||||
runtime.gc.extend("vec");
|
||||
}
|
||||
|
||||
var test=func(n){
|
||||
var ts=maketimestamp();
|
||||
var bar=process_bar.high_resolution_bar(40);
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import.module.libsock;
|
||||
|
||||
for(var i=0;i<60;i+=1){
|
||||
runtime.gc.extend("str");
|
||||
}
|
||||
|
||||
var http=func(){
|
||||
var sd=nil;
|
||||
return {
|
||||
|
||||
+16
-13
@@ -39,14 +39,14 @@ libfib.open();
|
||||
libfib.open();
|
||||
var tm=maketimestamp();
|
||||
tm.stamp();
|
||||
println("[result] ",libfib.fib(40));
|
||||
println("[result] ",libfib.fib(35));
|
||||
println("[time ] ",tm.elapsedMSec()," ms");
|
||||
tm.stamp();
|
||||
println("[result] ",libfib.qfib(40));
|
||||
println("[result] ",libfib.qfib(35));
|
||||
println("[time ] ",tm.elapsedMSec()," ms");
|
||||
libfib.close();
|
||||
println("[result] ",libfib.fib(40));
|
||||
println("[result] ",libfib.qfib(40));
|
||||
println("[result] ",libfib.fib(35));
|
||||
println("[result] ",libfib.qfib(35));
|
||||
libfib.close();
|
||||
|
||||
var speed_test=func(){
|
||||
@@ -56,19 +56,22 @@ var speed_test=func(){
|
||||
var vec_call=dylib.dlcall;
|
||||
var invoke=dylib.limitcall(1);
|
||||
var tm=maketimestamp();
|
||||
var duration=0;
|
||||
|
||||
for(var t=0;t<10;t+=1){
|
||||
var cnt=0;
|
||||
tm.stamp();
|
||||
for(var i=0;i<5e6;i+=1)
|
||||
invoke(fd,40);
|
||||
duration=tm.elapsedMSec();
|
||||
println("[time ] limited call: ",duration," ms avg ",5e6/duration," call/ms");
|
||||
while(tm.elapsedMSec()<50){
|
||||
invoke(fd,35);
|
||||
cnt+=1;
|
||||
}
|
||||
println("[time ] limited call: ",int(cnt/tm.elapsedMSec())," call/ms");
|
||||
cnt=0;
|
||||
tm.stamp();
|
||||
for(var i=0;i<5e6;i+=1)
|
||||
vec_call(fd,40);
|
||||
duration=tm.elapsedMSec();
|
||||
println("[time ] dynamic call: ",duration," ms avg ",5e6/duration," call/ms");
|
||||
while(tm.elapsedMSec()<50){
|
||||
vec_call(fd,35);
|
||||
cnt+=1;
|
||||
}
|
||||
println("[time ] dynamic call: ",int(cnt/tm.elapsedMSec())," call/ms");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+23
-21
@@ -61,37 +61,39 @@ func(){
|
||||
var f2=func(){var a=1;return a+1;}
|
||||
var f3=func(){var (a,b)=(1,1);return a+b+1;}
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1);
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e6;i+=1);
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f1();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e6;i+=1)f1();
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)func{}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e6;i+=1)func{}();
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f2();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e7;i+=1)
|
||||
for(var i=0;i<1e6;i+=1)f2();
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e6;i+=1)
|
||||
func{
|
||||
var a=1;
|
||||
return a+1;
|
||||
}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e7;i+=1)f3();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
for(var i=0;i<1e7;i+=1)
|
||||
for(var i=0;i<1e6;i+=1)f3();
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
tm.stamp();
|
||||
for(var i=0;i<1e6;i+=1)
|
||||
func{
|
||||
var (a,b)=(1,1);
|
||||
return a+b+1;
|
||||
}();
|
||||
duration=tm.elapsedMSec()/1e3;
|
||||
println("total ",duration," sec, ",str(int(1e7/duration/1e6))," M calc/sec");
|
||||
duration=tm.elapsedMSec();
|
||||
println(str(int(1e6/duration))," calc/ms");
|
||||
}();
|
||||
Reference in New Issue
Block a user