错误、漏洞、问题 - 页 2749

 
Roman:

在前一页,fxsaber给出了测量结果。
我解释了为什么会出现这种情况。
始终以静态或动态方式分配内存。

如果你指的是大表,那么屏幕上只能看到左边的部分,其他部分被切断了,所以我不知道那里有什么。

但从代码上看,如果这个宏被比作

GetCurrentTick2(Tick, !i)

我每100次迭代只有一次函数调用。 而第一个宏在每次迭代时都有一次调用。 所以这没有意义。

 
Alexey Navoykov:

如果你指的是大表,在屏幕上只有左边的部分是可见的,其他部分被切断了,所以我不知道那里有什么。

但从代码上看,如果这个宏被比作

而在第一个宏中,每100次迭代只有一个函数调用。 所以,这是无稽之谈。

编译器不是万能的,有时你必须参与进来,用正确的代码帮助它))。

 
Sergey Dzyublik:
ME调试器的错误(build 2370)--StepInto(F11)和手动设置断点不起作用。问题是,如果StepOver(F10)动作至少应用于
一个函数调用,那么以后就没有办法调试这个函数了。

回放步骤:
1) 在调试模式下运行代码;
2) 触发断点后,执行两次StepOver(F10);

一切 - 现在没有办法 "进入 "增量 函数,所有手动设置的断点都没有被触发,而且实际上执行的不是StepInto操作(F11),而是StepOver(F10)。


谢谢你的帖子。

纠正的是

 
Roman:

编译器不是万能的,有时你必须参与其中 ))

你是什么意思? 你向我保证你的构造更快,但事实并非如此。 它只是在那段代码中被调用的可能性减少了100倍。
 
Alexey Navoykov:

在第一个宏中,每100次迭代只有一个函数调用。 所以这是无稽之谈。

如果不是为了挑剔精度,我们在这里不需要,测试是正负正常。
相比之下:调用100次SymbolInfoTick与调用1次SymbolInfoTick并返回99次 "手动 "缓存。
显示了当当前符号的标准SymbolInfoTick函数将在一次调用中被多次调用时,使用该函数是如何的不划算。
作为问题的一个可能的解决方案,开发者建议引入一个预定义的变量。

const MqlTick _Tick; // Текущий _Symbol-тик.



只是,fxsaber 把所有东西都散落在帖子里,根本没有解释,这是一件很糟糕的事情。

 
Alexey Navoykov:

在第一个宏中,每100次迭代只有一个函数调用。 所以这是无稽之谈。

他的例子是在MQL程序的不同部分具体使用买入/卖出数据,你访问SymbolInfoTick()的频率越高,测试性能就越低。

我发现TimeCurrent()有一些性能问题,我用不同的方法尝试过,然后放弃了。

我很少使用全局变量的可见性,但为了让一切都在测试器中 "飞 "起来,我是这样写的。

MqlTick Tick = {0};
#define  Ask Tick.ask
#define  Bid Tick.bid
#define  TimeCurrent_ Tick.time
//+------------------------------------------------------------------+
void OnTick()
{
   SymbolInfoTick(_Symbol,Tick);
  ....
}
 
Alexey Navoykov:
什么意思? 你向我保证你的设计更快,它不是更快,只是在那段代码中被调用的可能性减少了100倍。

这不是我的设计,按照我对那个例子的理解,宏被逐一调用进行测试。
而通过报告是一起显示的,尽管它被裁剪了,但你可以看到执行时间。

 
Sergey Dzyublik:

如果你不关心准确性(你不需要),这个测试是正负正常。
比较:调用100次SymbolInfoTick与调用1次SymbolInfoTick并返回99次 "手动 "缓存。

是的,我明白缓存的问题。只是罗曼在这里擦了一些关于内存分配的东西......看来你对巨魔的看法是正确的 )

 
Alexey Navoykov:

我知道缓存的事。只是罗曼在这里擦了一些关于内存分配的东西......看来你对巨魔的看法是正确的 )

你认为缓冲区是在哪里分配的?你们这些蠢货。

 
Sergey Dzyublik:

如果你不关心准确性(你不需要),这个测试是正负正常。
比较:调用100次SymbolInfoTick与调用1次SymbolInfoTick并返回99次 "手动 "缓存。
显示了当当前符号的标准SymbolInfoTick函数将在一次调用中被多次调用时,使用该函数是如何的不划算。
作为问题的一个可能的解决方案,我们鼓励开发者引入一个预定义的变量。

你百分之百明白我的意思。

原因是,fxsaber 在他的帖子中把所有东西都散布开来,没有解释,很难理解。

对不起,我表述得不好。