以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA不定时非法问题!!  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=97358)

--  作者:roadpeace
--  发布时间:2016/5/12 22:24:25
--  VBA不定时非法问题!!
原来是后台模式
现新开发了"后台发信号——vba不断扫描处理后台信号"的新模式

24个品种,5个策略,1个账号(或多个账号)
后台发开平信号(放超全局变量,5分钟K末发),vba不断扫描处理,包括处理后台的信号,以及即时价的止损
扫描频率设定大概是每秒20次(全速可以6x次,不知道为什么是6x次,这个好像是系统上限,和cpu速度无关)
1个账号时,cpu平均占用率<2。金字塔内存占用也很少(比后台模式少很多)

问题:不定时会非法!!经1 、2个星期观察,会不定时非法,有时2天(中间基本没干扰)都不会非法。有时几十分钟就非法(甚至更短时间)
甚至没行情的时候也会非法(就是后台没新信号,行情也没新分笔,vba在空转)

想请问一下到底问题可能会出在哪里??特别是:为什么是不定时?到底是程序问题,还是vba不稳定?如果以前后台模式,几乎从不死机

--  作者:马良
--  发布时间:2016/5/12 22:37:04
--  
记录上日志,看一下非法前执行了哪行或者是大致那段代码导致的,不然我们也没法帮你查问题的。
--  作者:roadpeace
--  发布时间:2016/5/12 22:46:36
--  
我晕,每秒扫描20次*24品种*5策略,1000+行,我不知道怎么日志,生成的txt一大堆。而且好像弹出非法(之前提示是内存,刚才没提示)的时候,金字塔还运行多了一会才死掉的
--  作者:roadpeace
--  发布时间:2016/5/12 23:04:33
--  
我再想办法缩小一下范围吧,真够头痛的。
--  作者:马良
--  发布时间:2016/5/12 23:43:31
--  
通常非法是内存异常导致的,你检查一下是否是把不该释放的对象释放掉了,导致无效内存访问
--  作者:roadpeace
--  发布时间:2016/5/13 6:17:11
--  
感觉不是这个原因,否则不会有时两天都不非法啊。

而且为什么他不提示错误直接就死掉呢?