错误、漏洞、问题 - 页 2811

 
fxsaber:

你能推荐一个能监测CPU冻结的第三方程序吗?

我想排除(或确认)MT5在实际操作中制动的这种假设。

我到底应该如何监测?按流程,查看最近历史的最好方法是ProcessExplorer。

 
Stanislav Korotky:

究竟是如何监控的呢?按进程,ProcessExplorer显示最近的历史最好。

我看到MQL中的一些函数被执行了几十或几百个毫秒,而它应该在一个以内。我想知道那一刻机器上的一切都冻结了,还是MT5的问题。

 
fxsaber:

我看到MQL中的某些函数运行了几十或几百个毫秒,而它应该只运行一个。我想了解,在那一刻,机器上的一切都冻结了,还是MT5的问题。

显然,程序必须知道如何处理计时器,如果从切断到切断的时间更长,整个系统就会被冻结。服务器有这样的看门狗,它可能是软件,但服务器在这种情况下通常会被重新启动。

 

指示a la。

#property tester_file "abc.csv"

停止工作 - 文件存在,但没有被发送到代理。日志中没有任何错误。有这样的问题吗?

PS。通过在调试器下运行,重新启动了。文件开始回升。很好。

 
fxsaber:

我看到MQL中的某些函数运行了几十或几百个毫秒,而它应该只运行一个。我想了解,在那一刻,机器上的一切都冻结了,还是MT5的问题。

试着把MT5进程的优先级提高到最高,通过结果(冻结消失或保持)你就可以判断了。

此外,确保所有关键的硬件驱动程序都是最新的。

 
fxsaber:

你能推荐一个可以监测CPU冻结的第三方程序吗?

我想排除(或确认)MT5在实际操作中制动的这种假设。

LatencyMon值得一试

 
执行过程中出错。
enum E {
        e1 = 0,
        e2 = 1,
        e3 = 0
};
void OnStart()
{
        Print( "\"", EnumToString(e3), "\"" );
}

结果:"e1"

预期:"e3"。

至少不清楚为什么e1比e3好。
 
A100:
执行过程中出错。

结果:"e1"

预期:"e3"。

至少不清楚为什么e1比e3好。
也不清楚为什么e3会更好。 这种情况在任何情况下都是没有意义的。
 
Alexey Navoykov:
在任何情况下,情况都是没有意义的,因为e3也不是更好。

这种 情况下,至少要明确指出,它是更好的。

EnumToString(e3)

如果有几个解决方案,而且都是等价的,要么都必须用"E::e1:e3"(所有标识符) 来表示,要么就是在没有解决方案优于其他解决方案时产生的错误"E::0"(值代替标识符)

 
fxsaber:

查一下音频的操作系统这一主题。当建立一个基于PC的音频系统时,很多人都注意到了比特的完美性。这在系统定时器和进程优先级方面尤其如此。特殊的极简主义操作系统构建是为了留下最少的进程,禁用wifi和其他不必要的设备,提高播放器的优先级,设置最大的定时器频率,等等,等等。

DPC延时检查器