用的2.1.8版本,sqlite数据库。具体表现是,系统运行超过一定时间(5小时以上?因为有点随机,发现界面卡死也不一定是当时时刻,估计得不是很准确)。
程序正常运行时cpu一般在5%以下,内存一般在100M以下。
界面卡死时cpu会到30%左右,内存有时候在500M左右,有时候会上G,可能跟运行时间有关系。
其实这个时候vntrader并未崩溃掉,只是UI不刷新了而已。有时候等上几分钟,有时会等上20分钟左右,内存占用自动降下去后(观察了一下,内存降得稳定有规律,是否是python的内存回收机制在工作?),UI就能正常活动了。
试验了两台电脑,一台既跑策略也录数据,另一台只录数据,都会发生同样的问题。
看到有同样的问题的答复是,盘后要关闭vntrader,以便释放资源。下次开盘时再重启。
不过这个解决办法不是个根本措施。也有可能开盘前做了重启,但在盘中UI再卡死,这个时候会影响到交易操作。现在贵金属的交易时段已经是5个半小时,时间很长了,很可能在交易时间段会出现这个问题。我今天早上9点前启动了vntrader,因为中午休息时间期货公司不断开连接,所以一点半前没有再重启vntrader,到3点过5分时,发现UI已经卡死了(没一直在电脑前,不知道是收盘前卡死的还是收盘后卡死的),看日志整个运行期间都没有断过连接,也不像是CTP的反复中断重连消耗的资源。
这个问题是框架本身设计的特性导致的,还是哪个地方存在某个bug?如果将来某些品种连续交易时段超过十来个小时,这个问题的会不会显得更加突出?
在后续的版本中,会考虑解决这个问题吗?谢谢!