Новая версия платформы MetaTrader 5 build 3081: Улучшения в MQL5-сервисах и обновленный дизайн - страница 18

 

Подскажите, 

кто нибудь сталкивался с ограничением в глобальных переменных

Есть ли какие то цифры? 

 
Vladislav Andruschenko #:

Подскажите, 

кто нибудь сталкивался с ограничением в глобальных переменных

Есть ли какие то цифры? 

Длина имени только. Ну, и значение должно быть валидным double.

Но при большом количестве они подтормаживают.

 
Andrey Khatimlianskii #:

Длина имени только. Ну, и значение должно быть валидным double.

Но при большом количестве они подтормаживают.


Дада, именно подтормаживание началось. 

При +-1000 глоб переменных жуткие тормоза. 


Спасибо.

Буду исследовать эту проблему. 

 
Vladislav Andruschenko #:


Дада, именно подтормаживание началось. 

При +-1000 глоб переменных жуткие тормоза. 


Спасибо.

Буду исследовать эту проблему. 

Ну так это же постоянное чтение/запись файла. Если их так много, и обращаешься часто, надо кешировать при старте скрипта/эксперта.

Теоретически, файл с глобальными переменными при частом обращении должен кешироваться виндой, и летать. Может, памяти мало, и кеши постоянно вытесняются?

 
Edgar Akhmadeev #:

Ну так это же постоянное чтение/запись файла. Если их так много, и обращаешься часто, надо кешировать при старте скрипта/эксперта.

Теоретически, файл с глобальными переменными при частом обращении должен кешироваться виндой, и летать. Может, памяти мало, и кеши постоянно вытесняются?

Так смысл глоб переменных в том, что их можно использовать постоянно. 

Обращаюсь не часто. Но количество действительно большое. 

Читал недавно про тормоза на глоб переменных. Не пойму когда они стали появляться. ... То ли с новым билдом.... 

Исследую 

 

Не определяется тип входного параметра функции во всплывающей подсказке.

template <typename T>
class A
{
  T Value;
};

void f( A<int> &Index ) {}

void OnStart()
{
  f(
}
 

Раз используются глобальные переменные, то предполагается, что используются они из нескольких MQL программ работающих одновременно (?)
Если так, то чем чаще программы одновременно обращаются к глобальным переменным, тем больше вероятность, что программы попадут в ожидание на доступ к глобальным переменным.
Чем большее количество глобальных переменных используется, тем дольше будет ожидание, поэтому, обращение к глобальным переменным стоит свести к минимуму (кешировать значения).

При доступе к глобальным переменным используется бинарный поиск (ускорять там практически нечего).
Для поиска глобальной переменной из +-1000, в худшем случае будет использоваться 10 сравнений строк (имён).

 
Ilyas #:

Раз используются глобальные переменные, то предполагается, что используются они из нескольких MQL программ работающих одновременно (?)
Если так, то чем чаще программы одновременно обращаются к глобальным переменным, тем больше вероятность, что программы попадут в ожидание на доступ к глобальным переменным.
Чем большее количество глобальных переменных используется, тем дольше будет ожидание, поэтому, обращение к глобальным переменным стоит свести к минимуму (кешировать значения).

При доступе к глобальным переменным используется бинарный поиск (ускорять там практически нечего).
Для поиска глобальной переменной из +-1000, в худшем случае будет использоваться 10 сравнений строк (имён).

Спасибо. 
Уже выяснили, что при удалении списка глобальные переменных, тормоза пропадают, . 
Хотя советник Записывает те же самые данные. Т.е. он читает переменные, их нет, создаёт новые. Другой читает эти переменные. 
Буду двигаться в сторону кеша. 
 
fxsaber #:

Не определяется тип входного параметра функции во всплывающей подсказке.

Спасибо, исправлено

 
Большая просьба во время дебага запретить в Терминале реагировать на SHIFT+F5! Столько нехороших слов уже произнесено из-за этого...
Причина обращения: