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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → C++开发的问题

   

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


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

主题:C++开发的问题

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 16:42:11 [显示全部帖子]

就是因为发现卡,所以才用日志系统查看的呀。

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:04:52 [显示全部帖子]

是的,日志有很多,我只贴了突变的那个节点。我把完整的贴下来吧:


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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:05:45 [显示全部帖子]

代码:
__declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData)
{
if(pData->m_pfParam1 && pData->m_pfParam2)
{
log_info("MA in");
static std::vector<double> arMaData(30000,0);
//第一个周期初始化数据
if(pData->m_dwBarpos == 0)
{
arMaData.clear();
}
double dbData = *pData->m_pfParam1;

//防止使用仅刷最后K线的反复刷新问题
if (arMaData.size() >= pData->m_nNumData)
arMaData[arMaData.size() - 1] = dbData; //仅仅更新最后一个数据
else
arMaData.push_back(dbData);
DWORD dwCyc = (DWORD) *pData->m_pfParam2;
if(pData->m_dwBarpos < dwCyc-1)
{
//对于未到计算周期,返回无效数据
return -1;
}

//先累加
float fAdd = 0;
for(DWORD i = pData->m_dwBarpos-(dwCyc-1); i <= pData->m_dwBarpos; i++)
{
fAdd += arMaData[i];
}

*pData->m_pResultBuf = fAdd/dwCyc;
log_info("MA out");
}
return 1;
}

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:08:52 [显示全部帖子]

日志:行数44824

正常情况如下:
[200]
			2017-09-28
			17:02:31.8439827.79
			MA
			in
[200]
			2017-09-28
			17:02:31.8439827.80
			MA
			out
[200]
			2017-09-28
			17:02:31.8439827.84
			MA
			in
[200]
			2017-09-28
			17:02:31.8439827.85
			MA
			out
[200]
			2017-09-28
			17:02:31.8439827.88
			MA
			in
[200]
			2017-09-28
			17:02:31.8439827.90
			MA
			out
[200]
			2017-09-28
			17:02:31.8439827.93
			MA
			in
[200]
			2017-09-28
			17:02:31.8439827.95
			MA
			out
[200]
			2017-09-28
			17:02:31.8439827.98
			MA
			in
[200]
			2017-09-28
			17:02:31.8439828.01
			MA
			out
[200]
			2017-09-28
			17:02:31.8439828.07
			MA
			in
[200]
			2017-09-28
			17:02:31.8439828.09
			MA
			out


突变点如下:
[200]
				2017-09-28
				17:02:31.8440248.55
				MA
				in
[200]
				2017-09-28
				17:02:31.8440248.56
				MA
				out
[200]
				2017-09-28
				17:02:32.8440248.58
				MA
				in
[200]
				2017-09-28
				17:02:32.8440248.58
				MA
				out
[200]
				2017-09-28
				17:02:32.8440248.60
				MA
				in
[200]
				2017-09-28
				17:02:32.8440248.60
				MA
				out


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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:10:40 [显示全部帖子]

可以看到:
17:02:31和17:02:32有个突变点。
如果我反复调用十来个这样的函数,延迟直接上20秒了

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:52:44 [显示全部帖子]

2017-09-28
			17:02:31.8440248.56
			MA
			out
[200]
			2017-09-28
			17:02:32.8440248.58
			MA
			in




这两条是挨着打出来的,中间有1秒没有任何操作。
代码用的是示例代码,未做任何修改。

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:53:26 [显示全部帖子]

序列模式标志位0,逐K线为1,这一点早就查过了

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


加好友 发短信
等级:新手上路 帖子:77 积分:0 威望:0 精华:0 注册:2016/11/22 9:21:08
  发帖心情 Post By:2017/9/28 17:59:16 [显示全部帖子]

17:02:31.8440248.56
			MA
			out
17:02:32.8440248.58
			MA
			in

这样看两个log,这是连续的两条log,可以看到中间有1S没有任何操作,并且标记为out和in之间,说明两个函数的调用之间间隔了1s,而两次函数调用之间没有任何操作

 回到顶部