optimize gc

This commit is contained in:
ValKmjolnir
2022-12-07 01:17:40 +08:00
parent c88cbd0063
commit 39faa33b4e
4 changed files with 52 additions and 58 deletions
+9 -6
View File
@@ -73,10 +73,11 @@ println("coroutine state:\e[91m ",coroutine.status(co),"\e[0m");
println("ok");
# pressure test
for(var t=0;t<5;t+=1){
for(var t=0;t<10;t+=1){
var productor=func(){
for(var i=0;;i+=1)
while(1){
coroutine.yield(i);
}
}
var total=1000; # ms
var co=coroutine.create(productor);
@@ -86,14 +87,16 @@ for(var t=0;t<5;t+=1){
var bar=process_bar.high_resolution_bar(40);
var consumer=func(){
counter+=1;
for(var i=0;i<5;i+=1)
for(var i=0;i<t+1;i+=1)
coroutine.resume(co);
var rate=(tm.elapsedMSec()+1)/total;
print(" ",bar.bar(rate)," ",int(rate*100),"% | ",counter," tasks \r");
if(counter-int(counter/1000)*1000==0){
var rate=(tm.elapsedMSec()+1)/total;
print(" ",bar.bar(rate)," ",int(rate*100),"% | ",str(counter)," tasks in ",t+1," \r");
}
}
tm.stamp();
while(tm.elapsedMSec()<total)
consumer();
println();
println(" ",bar.bar(1)," 100% | ",str(counter)," tasks in ",t+1," ");
}
+6 -4
View File
@@ -1,14 +1,16 @@
import.stl.sort;
import.stl.process_bar;
for(var i=0;i<3910;i+=1){
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(50);
var bar=process_bar.high_resolution_bar(40);
var color=[];
var message=[];
@@ -21,10 +23,10 @@ var test=func(n){
message[i]=[i+n*10,"message "~i];
if((i-last_step)/n>1/100){
last_step=i;
print(bar.bar((i+1)/n)~" "~str(int((i+1)/n*100))~"% \r");
print(" ",bar.bar((i+1)/n)~" "~str(int((i+1)/n*100))~"% \r");
}
}
print(bar.bar((i+1)/n)~" 100% | ",ts.elapsedMSec()/1000," s | ");
print(" ",bar.bar((i+1)/n)~" 100% | ",ts.elapsedMSec()/1000," s | ");
var mess=func(vec){
var s=size(vec);