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

 
Комбинатор:
何がそんなに難しいのか? 結果ファイルを見続ける+ネイティブスリープで問題解決

ところで、そうなんです。一番簡単 )))

 
ファイルでは提供できない大きなオーバーヘッドを持つ同期オブジェクト?嘘つけ。
 
Alexey Navoykov:

はい、そのような問題があります。 オーバーロードされた演算子に参照でポインタを渡すと、エラーが発生します。 この問題は最新のビルドで発生し、以前はすべて問題ありませんでした。 数ヶ月前からサービスデスクにリクエストを送信していますが、いつものように沈黙です。 返信もさようならもないのです。

ポインタ配列の場合は、参照で送る以外に方法がないため、特に重要です。

というわけで、1554ビルドのままなんです。

最新のビルドでは、ポインタについても同じことが起こりました。以前は問題なくvoidを渡すことができましたが、今は参照でうまくいきません。私のライブラリのいくつかのコードを修正する必要がありました。

 
Sergey Dzyublik:
ファイルでは提供できない大きなオーバーヘッドを持つ同期オブジェクト?嘘つけ。

テスト中にファイルに書き込む必要があるのか? メモリに問題があるのか?

 
Alexey Navoykov:

Kernelからの Sleep()についての情報ありがとうございます!

 
Комбинатор:
なぜそんなに難しいのか? 結果ファイルから目を離さない+ネイティブスリープで問題解決。

テスト中のMQL Sleep()は仮想時間をスキップする(つまり0.6秒刻む)一方で、実時間は1ミリ秒未満スキップし、外部プログラムは実時間で実行されます。

でも、Sleep fromKernel ならやってみようかな)。

 
Konstantin:

テスト中にファイルに書き込む必要があるのか?

確かに、テスト中にファイルへの書き込み の代わりにメモリを使用すれば、ある程度の時間を節約できますが(正確に試算したわけではありませんが、1サイクルあたり最大30ミリ秒と想定)、それでも最も時間がかかるのは外部プログラムです。

ですから、今のところ重要なのは、外部プログラムが動いている間はテストを中断することです。

 
romachandr:

確かに、テスト時にファイルへの書き込み の代わりにメモリを使用することで、ある程度の時間を節約できますが(正確に試算したわけではありませんが、1サイクルあたり最大で30ミリ秒と想定しています)、それでもほとんどの時間は、外部プログラムの実行に費やされています。

ですから、今のところ重要なのは、外部プログラムが動いている間はテストを中断することです。

一般に、ファイルへの書き込みとメモリーへの書き込みでは、速度が2倍程度異なる。

 
romachandr さん、私は課題を誤解していたよう です。テスターは使っていませんし、EAを停止してもティックの発生は 止まらないかと思います。ここで無能なのは私です。
 

そして現在(ビルド 1809)はその逆です。

https://www.mql5.com/ru/forum/1111/page2181#comment_6765277

3行目(OnStart内)はコンパイルされますが、4行目はコンパイルされません。

言い換えれば

typedef int (*fn)( uint ); 
#import "Test1.ex5"
        void f( fn );
#import "Test2.ex5"
        int g(  int ); //(1)
        int g( uint ); //(2)
#import
void OnStart()
{
        f( g ); //Error: 'g' - cannot resolve function address
}

そして、(1)と(2)の行を入れ替えればOKです。何が違うの?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.03.09
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы