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

 

そのため、テストはこの値に基づいて行われます。

2012.02.27 18:32:35     ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=36672 mk.c.
2012.02.27 18:25:50     ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=37938 mk.c.
2012.02.27 18:24:29     ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=37530 mk.c.

もういい、続けるならスレッドを作らないと、バグや質問スレが散らかるぞ。

 
2012.02.27 22:37:03 Terminal CPU: AuthenticAMD AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ with OpenCL 1.1 (2 units, 2009 MHz, 2047 Mb, version 2.0)
2012.02.27 22:37:03 Terminal GPU: NVIDIA Corporation GeForce 8500 GT with OpenCL 1.0 (2 units, 918 MHz, 256 Mb, version 285.62)

2012.02.27 22:42:26 Test 2D (EURUSD,M5)ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=19920 mk.c.です。

これは、グラフを縦方向に拡大縮小して、できるだけ多くのオブジェクトにフィットさせた場合の結果です。

2012.02.27 22:45:39 テスト 2D (EURUSD,M5) ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=29016mk .c.です。

といった具合です。

2012.02.27 22:48:31 テスト 2D (EURUSD,M5) ChartRedraw() Count=1000 CountObj=100000 CountObjRedrawt=1000 time=57798mk .c.です。


そのため、ユーザーのコンピュータがハードウェア的に同じであっても、テストはすべて異なる結果を示すことになる。

 
Urain:

また、最初にChartRedrawなしで再描画のフルセットを測定し、次にChartRedrawありで測定し、控除を行う場合、これは正しいのでしょうか?

いや、正しくはないでしょう。

残念ながら、多くの最適化トリックを持つ非同期キューについては、遅延を計算することができない。別の方法を使う - なぜオブジェクトを修正しようとするのか?

 
Renat:

いや、正しくはないでしょう。

残念ながら、多くの最適化トリックを持つ非同期キューの遅延を計算することはできません。他の方法を使う -なぜオブジェクトを変更しようとするのですか?

オブジェクトを修正せずにチャートを再描画すると、何らかの妨害があるのではないかと思い、この方法でチャートを再描画することにしました。
 

Renat:

別の方法を使う - なぜオブジェクトを変更しようとするのですか?

では、動かしてみましょう。

#property script_show_inputs
//--- input parameters
input uint      Count=1000;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   uint st=GetTickCount();
   for(int i=1;i<=Count;i++)
     {
      ChartNavigate(ChartID(),CHART_END,-i);
//      ChartRedraw();  
     }
    Print("Total time for ",Count," cicles = ",GetTickCount()-st, " ms");  
  }
//+------------------------------------------------------------------+

私などは、チャートがピクピクと二重になってしまうのが嫌で、もっとスムーズに正しい位置に移動させたいと思ったのですが......。

// 面白いことに、ChartRedraw() を使用すると、使用しない場合よりも2倍高速に動作します。同時に、より痙攣する。

 
成功体験テストも役に立たなかった。
void OnStart()
  {
   uint st=GetTickCount();
   for(int i=1;i<=Count;i++)
     {
      do while (!ChartNavigate(0,CHART_END,-i));
//      ChartRedraw();  
     }
    Print("Total time for ",Count," cicles = ",GetTickCount()-st, " ms");  
  }

そして、スリップだけが目的のマッピングに近づいたのです。

void OnStart()
  {
   uint st=GetTickCount();
   for(int i=1;i<=Count;i++)
     {
      do while (!ChartNavigate(0,CHART_END,-i));
      Sleep(1);
//      ChartRedraw();  
     }
    Print("Total time for ",Count," cicles = ",GetTickCount()-st, " ms");  
  }

しかし、それではストレステストの意味が無くなってしまう...。

 

ビルド 597

新しいハードディスクをインストールした後、mt5端末がユーザー名とパスワードを保存しなくなった、今は起動するたびにユーザー名とパスワードを要求される、「起動時に個人設定とデータを保存」にチェックが入っている

どうすれば直るのか、何かいい方法はありますか?

 

運営からの質問:またフォーサム掲示板に問題があるのか、それとも私がおしゃべりをしすぎたのか?

 
tara:

運営からの質問:またフォーサム掲示板に問題があるのか、それとも私がおしゃべりをしすぎたのか?

マイナーバージョンアップで、すべて動くようになりました。
 

ありがとうございました。