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

 
Комбинатор:
чтож так сложно-то? следить за файлом результата + родной Sleep решают проблему.

Кстати, да. Самое простое ))

 
Объект синхронизации с большим оверхедом чем файл предложить не могли? Бред.
 
Alexey Navoykov:

Да, есть такая проблема.  При передаче указателя по ссылке в перегруженный оператор выдаётся ошибка.  Это появилось в последних билдах, раньше всё было ок.  Я уже пару месяцев как отправил заявку в сервис-деск, но там глухо, как обычно.  Ни ответа, при привета.

Особенно критично это для массива указателей, так как их по другому и не передашь, кроме как по ссылке:

Так что я по-прежнему сижу на 1554 билде.

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

 
Sergey Dzyublik:
Объект синхронизации с большим оверхедом чем файл предложить не могли? Бред.

вообще нужно ли писать в файл во время тестирования?, чем память не нравится?

 
Alexey Navoykov:

Спасибо за подсказку про Sleep() из Kernel!

 
Комбинатор:
чтож так сложно-то? следить за файлом результата + родной Sleep решают проблему.

MQL-ский Sleep() во время тестирования пропускает виртуальное время (т.е. время тиков на 0.6 секунды) при реальном пропуске времени меньше милисекунды, а внешняя программа выполняется реальное время.

А вот со Sleep из Kernel'а я попробую ).

 
Konstantin:

вообще нужно ли писать в файл во время тестирования?, чем память не нравится?

Да, использование памяти вместо записи в файл во время тестирования позволит сэкономить немного времени (точно не оценивал, но предполагаю, что на один цикл максимум до 30 милисекунд), но наибольшее время всё-таки занимает выполнение внешней программы.

Поэтому пока критичным является приостановка тестирования на время выполнения сторонней программы.

 
romachandr:

Да, использование памяти вместо записи в файл во время тестирования позволит сэкономить немного времени (точно не оценивал, но предполагаю, что на один цикл максимум до 30 милисекунд), но наибольшее время всё-таки занимает выполнение внешней программы.

Поэтому пока критичным является приостановка тестирования на время выполнения сторонней программы.

вообще то скорость записи в файл и в память различается в разы

 
romachandr, похоже, что я задачу неверно понял. Я тестером не пользуюсь, и не уверен, что остановка эксперта остановит генерацию тиков. Я тут некомпетентен.
 

Ну а теперь (build 1809) наоборот

https://www.mql5.com/ru/forum/1111/page2181#comment_6765277

3-я строка (в OnStart) компилируется, а 4-я - нет

Другими словами

typedef int (*fn)( uint ); 
#import "Test1.ex5"
        void f( fn );
#import "Test2.ex5"
        int g(  int ); //(1)
        int g( uint ); //(2)
#import
void OnStart()
{
        f( g ); //Error: 'g' - cannot resolve function address
}

А если поменять местами строки (1) и (2), то нормально. А какая разница?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.03.09
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
Причина обращения: