后台程序一开始能够运行几次 通过监控可以看到运行完毕 在此期间内存占用量不断提高 最后金字塔崩溃 我想问下这是什么原因 因为没有释放内存吗?
有什么解决方法
选项里选择的是 让金字塔使用最大内存
我电脑12G内存
电脑总内存到达3.5G左右 金字塔进程占用内存1.8G 的时候 金字塔软件会停止运行
用C++的话 都有RELEASE()函数去释放内存的
检查你是不是在序列模式下在循环语句中使用REF,MA等带有统计性质函数了
我是逐周期模式下 用了循环 双重循环 没有MA REF等函数
因为TINSORT函数不能够满足我的需要 所以循环我自己写的
我在论坛上查了下 金字塔是32位的 所以最多支持到4G内存? 我物理内存再高也没有用?
现在的问题是既然程序能够运行1次 2次 3次 为什么接下去就不行了 是什么地方占用了内存 运行第一次的时候占用的内存难道和第2次第3次不一样吗?
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;
问题应该就是出在这部分了
现在金字塔跳出窗口说我跨周期调用超过1000个了 我设置的是1000 我这个应该属于横向指标排序 问题是金字塔的功能不能满足我的需要 我只能用其他的办法 我这么写可能是有问题 只是不知道问题出在哪了