欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4453人关注过本帖树形打印复制链接

主题:关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢

帅哥哟,离线,有人找我吗?
roadpeace
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
关于vba程序发生不定时非法,找到点问题,麻烦看一下,谢谢  发帖心情 Post By:2016/5/15 10:32:34 [只看该作者]

之前反映程序改成vba后发生不定时非法现象。
现在找到一些异常,但可能还不一定是问题所在。现反映一下:

1、Order.HoldingInfo2:不断调用后内存占用不断升高,貌似不能释放,请看一下为什么(估计是有点问题)
但我现实上并不会像下面这样调用,也就3分钟一共循环调用20次,应该不至于导致内存不足?
2、查windows的日志,非法的时候金字塔很大部分是如下类似的出错记录,由于不是很懂看,能不能帮忙判断一下是哪方面原因?
异常代码: 0xc0000374查了一下代码可能是:堆已损坏

错误应用程序名称: WinStock_3.exe,版本: 3.8.0.0,时间戳: 0x569f42f9
错误模块名称: ntdll.dll,版本: 6.1.7601.23392,时间戳: 0x56eb3625
异常代码: 0xc0000374
错误偏移量: 0x00000000000bf262
错误进程 ID: 0x154c
错误应用程序启动时间: 0x01d1ae36191ac5ab
错误应用程序路径: C:\证券\Weisoft Stock - 测试 - 64\WinStock_3.exe
错误模块路径: C:\Windows\SYSTEM32\ntdll.dll




'-------------------测试Order.HoldingInfo2----------------------------------------------------------------------------------------------Sub APPLICATION_VBAStart()
Call Application.Settimer(5,30) 
End Sub

Sub APPLICATION_Timer(ID)
If ID = 5 then
Call test
End If
End Sub

Sub test()

Dim sAcctNo,iCounter1,aaa
Dim iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sBgCont,sMarket

sAcctNo = 611183 '这里修改为自己的账号
For iCounter1 = 1 to 500 step 1
' aaa = Order.Holding2(sAcctNo)
Call Order.HoldingInfo2(1,iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sBgCont,sMarket,sAcctNo) '其余几个注释掉的,可能也会有类似问题,但是内存增长很不明显,可以当是没问题
' Call Order.Contract("RB10","SQ",dblMultipliter,dblMinTick,iShortPercent,iLongPercent)
' Call Order.HoldingInfoByCode2("RB10","SQ",iBuyHolding,dblBuyCost,iBuyTodayHolding,iSellHolding,dblSellCost,iSellTodayHolding,dblPNL,dblUseMargin,sAcctNo)
' aaa = order.Account2(2,sAcctNo)
' aaa = Order.Account2(6,sAcctNo)
' aaa = Order.Account2(3,sAcctNo)
' aaa = Order.Account2(28,sAcctNo)
' aaa = Order.Account2(31,sAcctNo)
Next

End Sub
'-----------------------------------------------------------------------------------------------------------------------------------------

 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 15:22:15 [只看该作者]

已经跳开了以上的代码。继续测试中。。。
--------------------------------------------------------------
后来查看资源监视器,发现程序占用的内存,“提交”有时会突然跳跃式样上升
正常的时候一般是占200M以内的

观察到某一次是:开始一直是 占135M以内,跑了一个多小时后突然变为占420M,再过了10分钟后变为占5个G
图片点击可在新窗口打开查看此主题相关图片如下:test.png
图片点击可在新窗口打开查看


之前另外一次也观察到突然占了1个G。

这个跳跃,好像并不是固定的跳的(有待观察)。怀疑之前不定时非法,就是内存突然跳到虚拟内存都装不下了
我这台测试机硬盘(剩十几G)没那么大就比较容易非法点,而且我是暴力测试(跑20个账号,并且循环速度加多)。

另外一台是专机硬盘剩余空间有6xG,同样一样非法过(因为刚上所以观察时间少)


请问一下,会有什么原因会导致这“提交”会突然跳跃式上升?我观察到这个问题是没行情数据的时候(星期天)。如果是内存泄露,我觉得不是应该缓慢的上升的么?为什么会是突然上升的呢?
[此贴子已经被作者于2016-5-15 15:22:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 15:26:05 [只看该作者]

现在又过了10分钟,“提交”占了19个G了,估计再跳一次就没硬盘该死机了!
图片点击可在新窗口打开查看此主题相关图片如下:test.png
图片点击可在新窗口打开查看


感觉一旦开始跳跃,就不断向上跳了,如果不跳的话就一直是110~13xM左右
[此贴子已经被作者于2016-5-15 15:27:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 16:33:29 [只看该作者]

程序突然发现已经不知道什么时候偷偷停了,cpu占用0,没留意什么时候停的。
现在大概知道了,就是内存突然爆掉了,就是要慢慢找哪里出问题。客服如果看得出大概哪方面的问题的话,提示一下吧

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/15 17:47:03 [只看该作者]

我们认真检查了代码,不会在HoldingInfo2这里有什么内存分配未释放情况的,你可以考虑升级到3.91版本再测测


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 17:54:30 [只看该作者]

就是用3.91版测的,3.63,3.8,3.9版也都测过,你就按我上面代码直接copy测,内存占用上升很快的

当然这应该不是我不定时非法的问题所在,是我测试中无意发现的
[此贴子已经被作者于2016-5-15 17:55:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 17:57:50 [只看该作者]

附上代码,上面的版面编排有点问题,注意账号要修改为你们自己的测试账号,账号不对的话不会上升的
[此贴子已经被作者于2016-5-15 17:58:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/5/15 17:59:31 [只看该作者]

测试时帐号是对上的,你的VBA就只有这点代码吗?是否存在其他代码导致的内存占用问题



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 18:10:24 [只看该作者]

附件不知道为什么传不上

[此贴子已经被作者于2016-5-15 18:10:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
roadpeace
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:529 积分:1 威望:0 精华:0 注册:2013/6/3 11:41:26
  发帖心情 Post By:2016/5/15 18:14:59 [只看该作者]

代码就那么多,我新建一个工程写在marco里面的

测试的图片,用3.9测的,3.91是另外一台机也测过,我现在懒得开

循环次数足够大才明显看得出,否则内存上升不够快


.txt是代码,注意修改账号


图片点击可在新窗口打开查看此主题相关图片如下:test.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.txt


[此贴子已经被作者于2016-5-15 18:16:41编辑过]

 回到顶部
总数 15 1 2 下一页