Сколько секунд заберет такой цикл или миллисекунд?

 

Приветствую!

Сколько секунд заберет такой цикл?

Или искать через Print()? вставив принты перед и концом цикла?

 for (int i=0; i<5000; i++) {
 A=A+1;
 )
 
Alexander Ivanov:

Приветствую!

Сколько секунд заберет такой цикл?

Или искать через Print()? вставив принты перед и концом цикла?

Такой цикл не скомпилируется, т.к. нет закрывающей скобки ;)


По теме:

1) секунд - ни сколько, инкремент - быстрая операция;

2) можно получить микросекунды перед циклом и после цикла и вывесьти в журнал разницу.

 
PapaYozh #:

Такой цикл не скомпилируется, т.к. нет закрывающей скобки ;)


По теме:

1) секунд - ни сколько, инкремент - быстрая операция;

2) можно получить микросекунды перед циклом и после цикла и вывесьти в журнал разницу.

Спасибо! понял. попробую )

 
//+------------------------------------------------------------------+
//|                                            TestProcesor_Plus.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

int total=1000000;
int Sum;

int start()
  {
//----
int start=GetTickCount(); 
Sum=0;
   for(int j=0;j<10;j++)
      {
      total=2*total;
      for(int i=0;i<total;i++)
         {
         Sum=Sum+1;
         }
//----
      Print("j= ", j);
      Print("i= ", i);
      Print("Sum= ", Sum);
      Print("Время вычисления ", GetTickCount()-start, " миллисекунд.");
      }
   return(0);
  }
//+------------------------------------------------------------------+

TestProcesor_Plus EURUSD,M1: Время вычисления 3916 миллисекунд.
TestProcesor_Plus EURUSD,M1: Sum= 2046000000
TestProcesor_Plus EURUSD,M1: i= 1024000000

 
Ого, благодарю!)
 
Alexander Ivanov:

Приветствую!

Сколько секунд заберет такой цикл?

Или искать через Print()? вставив принты перед и концом цикла?

Зависит от быстродействия процессора. Для получения ощутимой величины увеличить повторений цикла и даже использовать вложенные циклы.

Использую при визуальном тестировании.

 
a007 #:

Зависит от быстродействия процессора. Для получения ощутимой величины увеличить повторений цикла и даже использовать вложенные циклы.

Использую при визуальном тестировании.

такой цикл может вообще ничего не занять.

 for (int i=0; i<5000; i++) {
 A=A+1;
 )

Есть шанс что при включенной оптимизации посчитается во время компиляции. Более того - он обязан посчитаться на этапе компиляции. A=A+5000

Причина обращения: