x64プラットフォーム用の新しいMQL5コンパイラーをテスト - 2~10倍計算が速い! - ページ 18

 
Alexey Sarmin:

質問:現在(最新版)のMT5 x64コンパイラは、デフォルトでOptimizeを有効にしてコンパイルしていますか?(Optimize=1)


そのようです。

 

出来上がったコードの性能を落としてでも、コンパイラの時間を短縮するにはどうしたらいいでしょうか?

500メガバイトのファイルをコンパイルしたいんだけど......待ちくたびれたよ......。

 
Aleksey Vyazmikin:

出来上がったコードの性能を落としてでも、コンパイラの時間を短縮するにはどうしたらいいでしょうか?

500メガバイトのファイルをコンパイルしたいんだけど......待ちくたびれたよ......。

いつだったか、似たようなコードの例を出していたような気がするのですが...。もう一回やってくれる?

 
Alexey Kozitsyn:

以前、似たようなコードの例を挙げていたような気がしますが...。もう一回やってくれる?

はい、こちらがEAへのリンク です。

2日経ちましたね~総集編は7%です・・・。

 
Aleksey Vyazmikin:

はい、ここにEAへのリンクが あります。

2日経ちましたね~総集編は7%です・・・。

ファイルを見てみると...ただ、いくつかのケース-アルマゲドン :-)。

 
Denis Kirichenko:

ファイルを見てみると・・・。ただ、ある種のケース・アルマゲドンのようなものです :-)

どうするかというと、変数セットの組み合わせをいろいろと変えて行く必要があります。

 
Aleksey Vyazmikin:

どうすればいいのか、変数のセットの組み合わせはいろいろとあります。

その目標は崇高なものです。しかし、なぜそのような野蛮な手段をとるのか。標準のMetaEditorには、いくつかのユニットテストがあります。そこで35Mbのファイルを見たことがないのです。エディターも凍りつくほどでした :-))

 
Denis Kirichenko:

その狙いは崇高です。しかし、なぜそのような野蛮な手段をとるのか。MetaEditorの標準パッケージには、いくつかのユニットテストが用意されています。そこには35Mbのファイルはありませんでした。エディターも凍りつくほどでした :-))

他にお勧めのツールはありますか?今のところ、これが一番早く思いつく選択肢です。

そのように普通にコンパイルして、待つこと1時間以内...でも500MBはもうキツイです。

実際、コンパイラがそこで何をしているのかさえ明確ではありません。すべてがコードの中で非常に明確で、いわば最適化するものが何もないのです...。
 

コンパイル(最適化段階)を高速化するために、関数のサイズを大幅に縮小する。

数百行、数千行に及ぶ関数が多いほど、巡回最適化の速度が遅くなります。長い関数を使えば、コードは無限に改善される。

 
Renat Fatkhullin:

コンパイル(最適化段階)を高速化するために、関数のサイズを大幅に縮小する。

数百行、数千行に及ぶ関数が多いほど、巡回最適化の速度が遅くなります。長い関数で延々とコードを改良できる。

この列挙を、例えば外部のCSVファイルに転送しようとすると、ファイルを読むのに無駄な時間がかかるし、さらに、エージェントにタスクを渡すときに、EAコードは1つのエージェントに送って(あるいは送らずに)エージェント間で共有するのに、500メガバイトも各エージェントに送れないという問題が発生します。

もう一つの質問ですが、私のコードは7zipで500から15メガバイトまで簡単に圧縮できますが、コンパイル後のファイルは500程度になります - なぜそうなるのでしょうか - 原始的な圧縮(100メガバイトにも)を行う機会がないのでしょうか?