PTrade 的多策略并行,内存是怎么被吃掉的
发布时间:2小时前阅读:10
同时跑几个策略,电脑越来越卡,最后某个策略莫名退出。原因通常不是 CPU 不够,而是内存被吃满。
第一个吃内存的是数据。每个策略启动时都会加载自己需要的历史数据,如果几个策略都加载全市场几年的分钟线,同一份数据在内存里存了好几份。策略越多,重复占用越大。
第二个是行情缓存。为了加速,客户端会把收到的行情存在内存里,跑得越久,缓存越大。有些版本会自己清理,有些不会。
第三个是日志对象。如果策略在循环里不断创建字符串、列表而不释放,内存会缓慢上涨,跑几天就明显了。
缓解的办法有四个。第一,把公共数据抽出来只加载一次,几个策略共用,不要各存一份。第二,减少同时运行的策略数量,跑三个和跑六个的差别可能不是线性的。第三,定期重启,把缓存清掉。第四,给机器留出余量,内存用到七成就该考虑加法子,而不是等到卡死。
判断是不是内存问题,看任务管理器里策略进程的占用曲线。一路向上不回落,基本就是泄漏或者缓存没有释放。
还有一个容易被忽略的占用:图表。客户端里每开一个分时图、K线图都在占内存,跑策略的时候把图表页关掉,只留日志和委托页,流畅度会有明显改善。这类优化不花钱,效果比升级硬件直接。
判断该不该加内存,看任务管理器的占用峰值。如果峰值长期在七成以上,加上策略数量还要增加,那该加;如果峰值只有四成却依然卡,问题就在代码或者网络上,加内存没用。
另外,跑策略的机器不要同时开着视频会议或者下载大文件,这类任务会把内存和带宽占满,表现和策略出问题几乎一样。
顺带说一个判断方法:如果加了内存之后依然卡,那问题多半在磁盘读写。策略频繁读取历史文件,机械硬盘会成为瓶颈,换成固态硬盘的改善往往比加内存明显,成本还更低。
股票/量化开户找我!股票佣金万0.854(满足条件)!无门槛国债逆回购一折 (百万分之一)!ETF佣金万0.5!ETF申赎一折!优惠多多!免费量化使用量化软件QMT+ptrade!资金靓号:888、999、等定制!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
