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

 
Alexey Navoykov:
このようなプロジェクトがMQLで作られていたとは、想像もできません。また、完全なIDEでは、さまざまなコンパイルのモードがあります。おそらく、リリースビルドのことをおっしゃっているのでしょうが、ほとんどの場合、デバッグで十分でしょう。でも、MTではそれを待っている時間はあまりない。
さらにそこでプリコンパイルされたファイルが使われるので、その後のビルドは明らかに速くなる

プラスは、いつものgeditで書き、デバッグコンソールをそれに入れ、デバッグはgdbで直接行い、リンクとビルドもgccコンソールから行い、IDEからは時々QtCreatorを使いますが、GUIを書いたりデバッグする必要があるときだけです:)。

重いIDEを読み込むより、余計な機能のないプレーンテキストエディタを読み込んで修正したり書いたりする方が楽だと思い、1年弱前にこの決断に至りました......。

 

Alexey Navoykov:
Насчёт ВСЕХ кодов - вы не погорячились? Откуда такая уверенность? Вы их все пробовали?

いろいろと試したが...。

OK、PCの前に来たらすぐに再生するためのコードを渡しますね。でも、弱小ハードで数十msというお話には、もう困惑してしまいますね。同じことを話しているのでしょうか?スクリプトファイルは.mq5ですか?また、搭載しているプロセッサーは?

パソコンに向かったら、データを明らかにします。
 
Slawa:
帰ってくるのは?
ストーリーのデバッグでは、なぜか完全なビジュアライゼーションがピックアップされます。そう真実が説明されている。さらに__DEBUG__を使用することにします。ビジュアルデバッグについては、ドキュメントにはあまり書かれていないんだ。
 
このトピックに関係のないコメントは、「グリッドアイアンのヘルプ」に移動しました。
 

kodobaseでMT5用の大きなプロジェクトをいくつか見つけたのですが、驚いたのはExpert AdvisorやIndicatorのセクションが実は同じ人の手仕事でいっぱいだったことです。 しかも数年間毎日いくつも作り続けているのです!なぜそこまでやるのか、何のためにやるのか...もしかしたらMQからお金をもらっているのかもしれませんね...もちろん全て一通り準備はしていますが、個人的には説明文とスクリーンショットを作るだけでも疲れてしまいそうです(笑)

Expert Advisorの重さは150~200kb程度ですが、まず、コードがかなり不鮮明で、しかも繰り返しの断片が多い。 まあ、これは私の推定ですが、量的には数倍はかかると思われます。第二に、コード自体がシンプルで、仮想関数や テンプレート、動的なオブジェクトやポインタが存在しないこと。コンパイル速度も600〜700msと速いです。 まあ、一般的には、かなり複雑で膨大な量のサンプルを見つける必要があります。 私の開発のうち、このプロジェクトだけは新しいコンパイラで完成させ、他のものは古いもので使っていますが、現状ではその必要性を感じていません。

 
Alexey Navoykov:

...

私の開発の中では、新しいコンパイラのプロジェクトを完成させただけで、あとはすべて古いものを使い、その調整に時間を費やしていますが、現在の状況を考えると、実用的だとは思えません。

現行バージョン:グラフィカルインターフェースIX:「プログレスバー」「ラインチャート」要素(第2章)

 

最初のテストExpert Advisor TestLibrary01は、6.5秒でコンパイルされました。しかし、このExpert Advisorが実際に使用するコードの量はまだ推定する必要があります。 それに、古いビルドのコンパイルスピードと比較すると、「スマート」という言葉が少し滑稽に見えるでしょう。 そこは瞬時でした。 もし知りたい人がいれば、1159版のコンパイラーを添付します。 もちろん、ファイル名は変更してください。

もちろん、コンパイル時間はコードのサイズや複雑さによって何倍にも変化しますが、ひとつだけ変えられないことがあります。 それは、新しいコンパイラは古いものよりずっと 遅いということです。同時に、ソフトウェアの速度が大幅に向上していないことも確認しました。 もし誰かが逆のことを証明したいのなら、どうぞしてください。

ファイル:
 
Alexey Navoykov:

さて、最初のテストExpert Advisor TestLibrary01は、6.5秒でコンパイルしてくれました。しかし、このExpert Advisorが実際に使用するコードの量はまだ推定する必要があります。 それに、古いビルドのコンパイルスピードと比較すると、「スマート」という言葉が少し滑稽に見えるでしょう。 そこは瞬時でした。 もし知りたい人がいれば、1159版のコンパイラーを添付します。 もちろん、ファイル名は変更してください。

つまり、実際には次のような結論になる。もちろん、コードの大きさや複雑さによってコンパイル時間は何倍にも変わるかもしれない。 しかし、ひとつだけ変わらないのは、古いコンパイラの方が新しいものよりずっと 速いということだ。 私が確認したところ、ソフトウェアの速度にかなりの増加は見られなかった。 誰か反対のことを証明したい人は、どうぞやってください。

もちろん、MetaTrader 5の 最も複雑なプロジェクトは、コンパイルに時間がかかりすぎます。最大で11 秒かかることもあります。MetaTrader4の 同バージョンでは、最大25 倍高速化されています。

例えば、同じプロジェクトでも

MetaTrader5

0 error(s), 0 warning(s), compile time: 11054 msec              1       1

//---

MetaTrader4

0 error(s), 0 warning(s), compile time: 434 msec                1       1

//---

今のところ、何に関連しているかは不明です。テスト用の資料を用意して、サービスデスクに送ってチェックしてもらうようにするといい。プロジェクトのコードを表示したくない場合は、この連載の記事のコードを例として使用することができます。

 
Anatoli Kazharski:

もちろん、MetaTrader 5の 最も複雑なプロジェクトも、コンパイルに長い時間がかかっています。最大で11 秒かかることさえある。全く同じバージョンですが、MetaTrader 4では 最大25 倍高速化することができます。

例えば、同じプロジェクトでも

MetaTrader5

//---

MetaTrader4

//---

今のところ、何に関連しているかは不明です。テスト用の資料を用意して、サービスデスクに送ってチェックしてもらうようにするといい。プロジェクトのコードを表示したくない場合は、この連載の記事のコードを例として使用することができます。

私の知る限り、このコンパイラの最適化は、64ビット環境での動作を改善すると宣言されています。 ところで、32ビット版のMT5を確認してみようと思います。 もしかしたら、すべてOKなのかもしれませんね。しかし、私にはそのような機会はない。

metaeditor for 5 の 32bit 版をお持ちの方は、ぜひシェアしてください。

 
Anatoli Kazharski:

もちろん、MetaTrader 5の 最も複雑なプロジェクトも、コンパイルに長い時間がかかっています。最大で11 秒かかることさえある。全く同じバージョンですが、MetaTrader 4では 最大25 倍高速化することができます。

例えば、同じプロジェクトでも

MetaTrader5

//---

MetaTrader4

//---

今のところ、何に関連しているかは不明です。テスト用の資料を用意して、サービスデスクに送ってチェックしてもらうようにするとよいでしょう。プロジェクトのコードを表示したくない場合は、この連載の記事のコードを例として使用することができます。

これはコードの最適化 です。

metaeditor.ini の [Experts] フィールドに OPTIMIZE=0 と書くと、4.のようなコンパイル速度になります。20秒でコンパイルできるプロジェクトもあれば、無限最適化ループに陥るプロジェクトもあります :)