在很多编程语言中,
都存在程序运行中过种内存占用不断上涨的问题,
这是因为内存没有即时回收引起的,
内存不即时回收有好的一面也有不好的一面,
我们要合理利用,
aardio正常情况下是不需要自己去处理内存问题的,
aardio会自动处理内存回收.
但有时开发大数据分析高频计算的程序本身占用的内存就很高,
如果不及时内存回收往往会让内存占用高达一倍左右,
如果正常情况下内存要占用几百M,
内存不及时回收又要多占用几百M,
那就浪费了太多内存资源,
所以可以考虑手工加上一条内存回收命令collectgarbage,
让程序及时加收内存,
以免占用过多的内存资源.
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio教程 www.jianma123.com 简码编程";right=395;bottom=243)
winform.add(
button={cls="button";text="开始";left=89;top=169;right=177;bottom=204;z=2};
button2={cls="button";text="停止";left=191;top=169;right=279;bottom=204;z=3};
edit={cls="edit";left=9;top=9;right=387;bottom=141;edge=1;multiline=1;vscroll=1;z=1}
)
/*}}*/
import web.json;
var stop = false;
winform.button.oncommand = function(id,event){
winform.edit.print("开始");
stop = false;
var tabA = {1;2;3;4;5;6;7;8;9;10;}
var tabB = tabA;//传址操作
while(1){
table.push(tabB,5);
if(table.count(tabB)>10){
table.remove(tabB,1);
}
winform.edit.print(tabB);
if(stop){
break;
}
win.delay(10);
//内存回收,防止过太久才回收占用太多内存,给点时间它回收
//collectgarbage("collect");
//win.delay(100);
}
winform.edit.print("已跳出循环");
}
winform.button2.oncommand = function(id,event){
winform.edit.print("停止");
stop = true;
}
winform.show();
win.loopMessage();