请教各位大佬,策略循环一次用时忽大忽小是怎么回事,有时候一次用时60ms,有时候一次用时10000+ms, 我把内部每个功能分别计时,发现小的时候所有功能用时都小,大的时候所有功能用时都大, 而且有一个功能就是更新图表信息,状态栏信息用时比获取行情信息还要久 =。= 这是云服务器导致的吗,用的亚马逊的t2.micro。(跑的策略很简单)
提供帮助(点击头像可联系) 图表状态栏理论上只是展示,慢的原因应该是网络IO,将循环内的网络IO部分尽量并发执行
发明者量化-小小梦 是实盘吗?还是回测? 状态栏内容刷新是有频率的,刷新率不会很快,所以显示的内容并不是立即显示当前的状态栏内容。实盘时耗时基本上都是有网络IO请求产生的,其它操作耗时基本都可以忽略。
陈皮 更新图表信息,状态栏信息可以用多线程
发明者量化-小小梦 把for循环减少到10次,再观察下。
Wa-emmnn_ 大佬我发现一个地方耗时较大,for循环收尾竟然要220+,这是什么原因? var A = new Date().getTime() var B = 0 var C = 0 for (var i = 0; i < 1000; i++) { //循环内部都是计算 B=new Date().getTime()-A } C=new Date().getTime()-A // 输出结果B=6 , C=220+ 我是这样抓取时间的,不知道有没有问题
Wa-emmnn_ 好的,感谢
发明者量化-小小梦 按说没有网络IO的不会有多少耗时,一般也就几毫秒。可以给出一个简单的测试代码看下。 换一个简单的测试场景,排除是否是策略设计导致的问题。
Wa-emmnn_ 是实盘,我统计了一下轮询用时,总是时大时小。不单单的状态栏,所有功能耗时基本上是同比例放大缩小。
Wa-emmnn_ 感谢提供思路QAQ