エラー、バグ、質問 - ページ 2811

 
fxsaber:

CPUフリーズを監視できるサードパーティ製プログラムを紹介してください。

このMT5のブレーキに関する仮説を実運用で除外(または確認)したいのです。

具体的にどのようにモニターすればよいのでしょうか?プロセス別に、最近の履歴を見るには、ProcessExplorerが最適です。

 
Stanislav Korotky:

具体的にはどのようにモニターされているのですか?プロセス別に、ProcessExplorerは最近の履歴をベストで表示します。

MQLのある関数が、1ミリ秒以内に収まるべきところを数十ミリ秒、数百ミリ秒と実行されていますね。その時、マシン上ですべてがフリーズしていたのか、それともMT5の問題なのかを知りたいのです。

 
fxsaber:

MQLの何かの関数が、1ミリ秒で動くべきところを数十ミリ秒、数百ミリ秒と動いていたんですね。その瞬間、マシンのすべてがフリーズしたのか、それともMT5の問題なのかを理解したいのです。

どうやら、プログラムはタイマーをどう扱うかを知っていて、カットオフからカットオフまでの時間が長くなると、システム全体がフリーズしてしまうようです。サーバーにはそのようなウォッチドッグがあり、ソフトウェアかもしれませんが、このような場合、サーバーは通常再起動されます。

 

ディレクティブ・ア・ラ

#property tester_file "abc.csv"

は動作を停止しました - ファイルは存在しますが、エージェントに送信されません。ログにエラーはありません。そんな問題があったのですか?

PS.デバッガー下から実行することでリブート。ファイルがピックアップされ始めた。素晴らしい。

 
fxsaber:

MQLの何かの関数が、1ミリ秒で動くべきところを数十ミリ秒、数百ミリ秒と動いていたんですね。その瞬間、マシンのすべてがフリーズしたのか、それとも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:

オーディオ用OSの話題で調べてみてください。PCベースのオーディオシステムを構築する際、ビットパーフェクションに多くの注意を払います。特に、システムタイマーとプロセスの優先順位がそうです。最小限のプロセス数を残す、無線LANなどの不要な機器を無効にする、プレーヤーの優先順位を上げる、タイマーの頻度を最大にする、などなど、特別なミニマルOSビルドが作成されているのだそうです。

DPCレイテンシチェッカー