Ошибки, баги, вопросы - страница 2255

 

почему не могу в личку написать? спамер опять пытается в друзья добавиться, захожу к нему вижу у него сигналы, продукты 10 тыс друзей, жму написать сообщение и попадаю на Волчанского, а как тому написать?

кстати если зарегистрировать новый акк, и ни разу не засветив его, приходят предложения в друзья, как они находят новых участников??

 
Fast528:

почему не могу в личку написать? спамер опять пытается в друзья добавиться, захожу к нему вижу у него сигналы, продукты 10 тыс друзей, жму написать сообщение и попадаю на Волчанского, а как тому написать?

кстати если зарегистрировать новый акк, и ни разу не засветив его, приходят предложения в друзья, как они находят новых участников??


90% из добавляемых в друзья - это спамеры, набивают количество друзей. 

Я думаю, что у них есть свои плагины, которые отслеживают активность на форуме. или новых пользователей

 

Еще раз столкнулся с зависанием на 16 секунд при выполнении функции CopyTime при запросе с пустого синтетического символа.

int OnInit()
  {
   CustomSymbolCreate("Symb001","NewSymbols");
   SymbolSelect("Symb001",true);
   ChartSetSymbolPeriod(0,"Symb001",PERIOD_M1);
   datetime time[]; 
   ArraySetAsSeries(time,true);
   Print("Ждемс...");
   ulong t=GetMicrosecondCount();
   int res=CopyTime("Symb001",PERIOD_M1,0,1,time); // ~ 16 секунд
   Print("Время выполнения функции CopyTime = " + string(GetMicrosecondCount()-t)+" мкс");
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {   
  }
void OnTick()
  { 
  }

Результат:

2018.08.13 00:03:16.342 TestSyntCopyTime (Symb001,M1)   Время выполнения функции CopyTime = 15966607 мкс


В МТ5 за последнее время очень часто обнаруживались подвисания, как правило,  на эти пресловутые 16 секунд (понятное дело, что на других компьютерах эта цифра может отличаться) 
Например здесьздесь, здесь, или здесь, или здесь
Очень похоже, что причина этого - отсутствие или некорректный контроль за переполнением переменных типа int или uint (чисто гипотетически) . Так как пустой замкнутый цикл из UINT_MAX=4294967295 проходов занимает соизмеримое время ~ 6 сек.

Такой контроль все же необходим на тот случай, когда суют лом в бензопилу. 

Не исключено, что решая эти баги с зависаниями, проблему не решали, а обходили, т.к. она постоянно всплывает то в одном месте, то в другом.

Файлы:
 
Nikolai Semko:

Еще раз столкнулся с зависанием на 16 секунд при выполнении функции CopyTime при запросе с пустого синтетического символа.

Результат:


В МТ5 за последнее время очень часто обнаруживались подвисания, как правило,  на эти пресловутые 16 секунд (понятное дело, что на других компьютерах эта цифра может отличаться) 
Например здесьздесь, здесь, или здесь, или здесь
Очень похоже, что причина этого - отсутствие или некорректный контроль за переполнением переменных типа int или uint (чисто гипотетически) . Так как пустой замкнутый цикл из UINT_MAX=4294967295 проходов занимает соизмеримое время ~ 6 сек.

Такой контроль все же необходим на тот случай, когда суют лом в бензопилу. 

Не исключено, что решая эти баги с зависаниями, проблему не решали, а обходили, т.к. она постоянно всплывает то в одном месте, то в другом.

Какой номер билда клиентского терминала?

 
Slava:

Какой номер билда клиентского терминала?

1881

 
Slava:

Какой номер билда клиентского терминала?

И еще. Правда я не уверен. 
Год назад таких проблем вроде не существовало.
 
Nikolai Semko:

1881

Исправили с 1886 билда.

Nikolai Semko:
И еще. Правда я не уверен. 
Год назад таких проблем вроде не существовало.

Вы просто не видели проблем.

Когда добавили функции iTime, iOpen, iHigh etc, которые на самом деле являются вырожденными CopyTime, CopyOpen, CopyHigh etc, увидели, что бывают случаи, когда самые последние данные ещё не подгружены, а функции возвращают результат. В случае с i-Функциями это оказалось критично.

Сейчас всё должно работать правильно и быстро. Дождитесь официального билда.

 
Slava:

Исправили с 1886 билда.

Вы просто не видели проблем.

Когда добавили функции iTime, iOpen, iHigh etc, которые на самом деле являются вырожденными CopyTime, CopyOpen, CopyHigh etc, увидели, что бывают случаи, когда самые последние данные ещё не подгружены, а функции возвращают результат. В случае с i-Функциями это оказалось критично.

Сейчас всё должно работать правильно и быстро. Дождитесь официального билда.

Понял, спасибо. 
Т.е текущий доступный билд 1881? Или я что-то пропустил?
 
Nikolai Semko:
Понял, спасибо. 
Т.е текущий доступный билд 1881? Или я что-то пропустил?
Текущий доступный билд 1881
 

Ошибка при выполнении:

class A {
public:
        template<typename T>
        A* A::f( T )
        {
                int size = ArraySize( i ) + 1;
                Print( __FUNCTION__, ":", size );
                if ( ArrayResize( i, size ) == -1 )
                        Print( __FUNCTION__, ":Error:", GetLastError());
                return &this;
        }
        template<typename T>
        A* A::operator+( T t ) { return f( t ); }
        int i[];
};
void OnStart()
{
        A a;
        a + 0 + 0;
}

Результат:                         Ожидалось:

A::f<int>:1                         A::f<int>:1
A::f<int>:753790661           A::f<int>:2
A::f<int>:Error:4007

А так:

void OnStart()
{
        A a;
        a.f( 0 ).f( 0 );
}

нормально. А какая разница? С чего вдруг размер массива стал равен 753790660 (вместо единицы) и как следствие память вдруг закончилась (4007) ? MT5\1881\32

Более того... если в первом варианте удалить в классе буквально три символа - результат также будет нормальным