2016年6月10日金曜日

【EA高速化】バックテスト時間を短くしよう 定数名の長さ、文字種類の違い

定数名は短いほうが速い気がします。

プロセッサーの中では0より1のほうが時間がかかります。
Dはキャラクターコード &H44 001000101が少ない文字です。
最速変数ではないでしょうか?

①定数A
②定数Ax50
③定数Dx50

私の予想では① ③ ②の順ですがいかがでしょうか?






結果は・・・・ダメでした。計測するたびに順位が変わります。

コンパイルする時に変数名は順番に番号になると聞いたことがあります。
逆コンパイルしても変数名はわからないという話も小耳にはさんだことがあります。

そういえばマシン語はアドレスを確保して、そこに代入するのでしたね。
マシン語書いてたのって小学校くらいだったなー懐かしい・・・

という事で変数名はかっこいいのをつけてもいいみたいです。

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

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 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD=MarketInfo("",32);
    }
Comment(GetMicrosecondCount()-t);}

0 件のコメント:

コメントを投稿