以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  金字塔软件问题提交  (http://222.73.7.161/bbs/list.asp?boardid=2)
----  后台程序  (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=30932)

--  作者:sven0321
--  发布时间:2012/11/27 11:32:22
--  后台程序
后台程序一开始能够运行几次 通过监控可以看到运行完毕 在此期间内存占用量不断提高 最后金字塔崩溃 我想问下这是什么原因 因为没有释放内存吗?
有什么解决方法

选项里选择的是 让金字塔使用最大内存

我电脑12G内存 

电脑总内存到达3.5G左右 金字塔进程占用内存1.8G 的时候 金字塔软件会停止运行

--  作者:sven0321
--  发布时间:2012/11/27 11:37:54
--  
用C++的话 都有RELEASE()函数去释放内存的 
--  作者:admin
--  发布时间:2012/11/27 12:06:34
--  

检查你是不是在序列模式下在循环语句中使用REF,MA等带有统计性质函数了


--  作者:sven0321
--  发布时间:2012/11/27 12:08:59
--  
我是逐周期模式下 用了循环 双重循环 没有MA REF等函数
--  作者:sven0321
--  发布时间:2012/11/27 12:11:02
--  
因为TINSORT函数不能够满足我的需要 所以循环我自己写的
--  作者:sven0321
--  发布时间:2012/11/27 12:15:26
--  
我在论坛上查了下 金字塔是32位的 所以最多支持到4G内存? 我物理内存再高也没有用?

现在的问题是既然程序能够运行1次 2次 3次  为什么接下去就不行了 是什么地方占用了内存 运行第一次的时候占用的内存难道和第2次第3次不一样吗?



--  作者:admin
--  发布时间:2012/11/27 12:22:25
--  
代码贴上来我们帮你分析看看
--  作者:sven0321
--  发布时间:2012/11/27 12:26:47
--  
 variable:arr1[22]=0,arr4[22]=\'str\',counter=0,counter1=0,temp4=\'str\',temp2=0;
ag1:=stkindi(\'ag01\',\'涨跌排序.涨幅\',0,6,0);
al1:=stkindi(\'al02\',\'涨跌排序.涨幅\',0,6,0);
au1:=stkindi(\'au06\',\'涨跌排序.涨幅\',0,6,0);
ay1:=stkindi(\'ay05\',\'涨跌排序.涨幅\',0,6,0);
c1:=stkindi(\'c05\',\'涨跌排序.涨幅\',0,6,0);
cf1:=stkindi(\'cf05\',\'涨跌排序.涨幅\',0,6,0);
cu1:=stkindi(\'cu03\',\'涨跌排序.涨幅\',0,6,0);
er1:=stkindi(\'er05\',\'涨跌排序.涨幅\',0,6,0);
j1:=stkindi(\'j05\',\'涨跌排序.涨幅\',0,6,0);
l1:=stkindi(\'l05\',\'涨跌排序.涨幅\',0,6,0);
m1:=stkindi(\'m05\',\'涨跌排序.涨幅\',0,6,0);
me1:=stkindi(\'me01\',\'涨跌排序.涨幅\',0,6,0);
p1:=stkindi(\'p05\',\'涨跌排序.涨幅\',0,6,0);
rb1:=stkindi(\'rb05\',\'涨跌排序.涨幅\',0,6,0);
ro1:=stkindi(\'ro01\',\'涨跌排序.涨幅\',0,6,0);
ru1:=stkindi(\'ru05\',\'涨跌排序.涨幅\',0,6,0);
sry1:=stkindi(\'sry05\',\'涨跌排序.涨幅\',0,6,0);
ta1:=stkindi(\'ta05\',\'涨跌排序.涨幅\',0,6,0);
v1:=stkindi(\'v05\',\'涨跌排序.涨幅\',0,6,0);
wsy1:=stkindi(\'wsy05\',\'涨跌排序.涨幅\',0,6,0);
y1:=stkindi(\'y05\',\'涨跌排序.涨幅\',0,6,0);
zn1:=stkindi(\'zn02\',\'涨跌排序.涨幅\',0,6,0);

arr4[1]:= \'ag01\'; arr4[2]:= \'al02\'; arr4[3]:= \'au06\'; arr4[4]:= \'AY05\';arr4[5]:= \'c05\'; arr4[6]:= \'cf05\'; arr4[7]:= \'cu03\'; arr4[8]:= \'er05\'; 
arr4[9]:= \'j05\';arr4[10]:= \'l05\'; arr4[11]:=\' m05\'; arr4[12]:= \'me01\'; arr4[13]:= \'p05\'; arr4[14]:= \'rb05\';arr4[15]:= \'ro01\'; arr4[16]:= \'ru05\'; 
arr4[17]:= \'sry05\'; arr4[18]:= \'ta05\'; arr4[19]:= \'v05\';arr4[20]:= \'wsy05\';arr4[21]:=\'y05\'; arr4[22]:=\'zn02\';

arr1[1]:= ag1; arr1[2]:= al1; arr1[3]:= au1; arr1[4]:= ay1;arr1[5]:= c1; arr1[6]:= cf1; arr1[7]:= cu1; arr1[8]:= er1; arr1[9]:= j1;arr1[10]:= l1; 
arr1[11]:= m1; arr1[12]:= me1; arr1[13]:= p1; arr1[14]:= rb1;arr1[15]:= ro1; arr1[16]:= ru1; arr1[17]:= sry1; arr1[18]:= ta1; arr1[19]:= v1;arr1[20]:= wsy1;
arr1[21]:=y1; arr1[22]:=zn1; 

for counter1 = 1 to 22 do begin
    for counter = 1 to 21 do begin
    if arr1[counter]>arr1[counter+1] then do BEGIN
     temp2: = arr1[counter+1];
     arr1[counter+1]: = arr1[counter];
     arr1[counter]:= temp2;
     temp4:=arr4[counter+1];
     arr4[counter+1]:=arr4[counter];
     arr4[counter]:=temp4;
     end;
    end
end;

问题应该就是出在这部分了  

--  作者:sven0321
--  发布时间:2012/11/27 12:28:29
--  
如果能帮我解决问题的话就太感谢了
--  作者:sven0321
--  发布时间:2012/11/27 12:42:19
--  
现在金字塔跳出窗口说我跨周期调用超过1000个了 我设置的是1000 我这个应该属于横向指标排序 问题是金字塔的功能不能满足我的需要 我只能用其他的办法  我这么写可能是有问题 只是不知道问题出在哪了