通过同一个公式里取多个跨周期变量的话,金字塔会重算多次,浪费了CPU运算。
举例来说明:
日周期程序
if barpos=1 then aa:=1;
if barpos=1 then bb:=1;
for j=1 to 10000 do begin
aa:=aa+1;
end
aaa:aa;
for k=1 to 10000 do begin
bb:=bb+1;
end
bbb:bb;
分钟周期程序
if barpos=1 then aaa:=1;
if barpos=1 then bbb:=1;
if time=opentime(0)+100 then aaa:="日测试.aaa#day";
if time=opentime(0)+100 then bbb:="日测试.bbb#day";
a1:aaa;
b1:bbb;
此时,取bbb值,跟不取bbb值,速度慢了一倍。
其实金字塔应该在第一次计算“日测试.aaa#day”时就应该寄存起所有可输出变量,取bbb时就不用再算一次这么笨了。
应该在第一次计算“日测试.aaa#day”时就应该寄存起所有可输出变量,取bbb时就不用再算一次这么笨了。
有道理 支持
那我用全局变量也可以达到同样的效果。
请谨记:设计软件的最高境界是把功能设计出来,让用户忘掉。