Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 29

 
pivomoe:

А нет ли какой нибудь функции, чтобы освободить память после сокращения размеров массива ( не до нуля ) ? Сделал свой аналог ArrayResize , с сокращением размера памяти, но там два раза весь массив копируется...

Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.

 
Edgar:

Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.

видимо не все языки, Си и C++ освобождает без задержек

 
Konstantin:

видимо не все языки, Си и C++ освобождает без задержек

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

К MQL5 это может не относиться. Я бы всë равно померил общую производительность для интереса. 

 
Edgar:

Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.

У меня с памятью проблема следующая. В при реальной торговле потребление памяти  Terminal.exe достаточно умеренное на уровне сотен мегабайт. А вот при тестировании потребление памяти  Terminal.exe неуклонно  растет пока не заругается Windows. Причем MQLInfoInteger(MQL_MEMORY_USED), что в тестере , что в реале выдает считанные мегабайты. Приходиться убирать их тестов высоколиквидные инструменты, что памяти Terminal.exe кушал меньше при тестах.

Я так понимаю все эти вызовы ArrayResize c -1 мне не помогут ?

 
pivomoe:

У меня с памятью проблема следующая. В при реальной торговле потребление памяти  Terminal.exe достаточно умеренное на уровне сотен мегабайт. А вот при тестировании потребление памяти  Terminal.exe неуклонно  растет пока не заругается Windows. Причем MQLInfoInteger(MQL_MEMORY_USED), что в тестере , что в реале выдает считанные мегабайты. Приходиться убирать их тестов высоколиквидные инструменты, что памяти Terminal.exe кушал меньше при тестах.

Я так понимаю все эти вызовы ArrayResize c -1 мне не помогут ?

Мне кажется, проблема в коде (утечка памяти, неосвобождение динамической памяти) или в windows (маленький pagefile?)

 
Artyom Trishkin:

Открепляете график (Alt+D) и переносите его на нужный монитор

Это работает только в МТ5 ?
 
AxeEffect:
Это работает только в МТ5 ?
Да.
 
Artyom Trishkin:
Да.
Спасибо! 
 
Ссылки на форуме с предыдущими билдами не работают. У кого есть, просьба выложить.
 
fxsaber:
Ссылки на форуме с предыдущими билдами не работают. У кого есть, просьба выложить.

Я переехал на другой гугл-аккаунт. Новая ссылка вот.

Если нужны другие билды, говорите, есть много.