2016年6月10日金曜日

【EA高速化】バックテスト時間を短くしよう インデント不要論!

C言語にはコーディング規約なるものが存在します。
どの人が書いても同じようになり、見る人が読みやすくなる目的です。

MT4公式でもあるかもしれませんが私は見たことがありません。
3rd フォーラムではときどき見かけますが・・・

ということで、ANTIコーディング規約派です。(いまのところ・・・)

インデントを付けて見やすくすることに弊害はないのでしょうか?
MT4ではms単位での速度が要求されます。
改行や空白の影響で1マイクロ秒遅くなることはないのでしょうか?

独断と偏見で検証します。
コンパイルする時にそれくらいうまくやりそうな気もしますが・・・

void OnTick(){int t=GetMicrosecondCount();
for(int i=0;i<1000000;i++){double A=MarketInfo("",32);}
Comment(GetMicrosecondCount()-t);}

void OnTick(){int t=GetMicrosecondCount();
for(int i=0;i<1000000;i++)
    {  
    double A=MarketInfo("",32);
    }
Comment(GetMicrosecondCount()-t);}

上が ind1 下は ind2 です。

改行三つと、スペース三つを百万回、繰り返すと差がつくのでしょうかw
結果を見てみましょう!

1.2ms/100万回ほど早いですね。

不要なインデントや改行はやめましょう!!!!
圧縮されればされるほど、MT4は真価を発揮します!!!!

コーディング規約 不要派の検証でした^^;




0 件のコメント:

コメントを投稿