Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 29
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А нет ли какой нибудь функции, чтобы освободить память после сокращения размеров массива ( не до нуля ) ? Сделал свой аналог ArrayResize , с сокращением размера памяти, но там два раза весь массив копируется...
Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.
Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.
видимо не все языки, Си и C++ освобождает без задержек
видимо не все языки, Си и C++ освобождает без задержек
Я имел в виду именно эти языки в первую очередь, поскольку на них занимался системным программированием. Но за прошедшие годы методы управления памятью могли измениться вместе с аппаратной поддержкой страничной памяти.
К MQL5 это может не относиться. Я бы всë равно померил общую производительность для интереса.
Во всех языках программирования освобождаемая память не отдаëтся сразу на сборку мусора, это очень дорогая операция и еë стараются откладывать до крайней необходимости. Она возвращается в резерв, и оттуда размещается для следующих запросов памяти. Если самостоятельно каждый раз освобождать память, затратится очень много времени не только на "ручную" сборку мусора, но и на последующие резервирования. В типичных случаях. В Вашем частном случае, возможно, по-другому. Я бы замерил общие затраты времени в программе.
У меня с памятью проблема следующая. В при реальной торговле потребление памяти Terminal.exe достаточно умеренное на уровне сотен мегабайт. А вот при тестировании потребление памяти Terminal.exe неуклонно растет пока не заругается Windows. Причем MQLInfoInteger(MQL_MEMORY_USED), что в тестере , что в реале выдает считанные мегабайты. Приходиться убирать их тестов высоколиквидные инструменты, что памяти Terminal.exe кушал меньше при тестах.
Я так понимаю все эти вызовы ArrayResize c -1 мне не помогут ?
У меня с памятью проблема следующая. В при реальной торговле потребление памяти Terminal.exe достаточно умеренное на уровне сотен мегабайт. А вот при тестировании потребление памяти Terminal.exe неуклонно растет пока не заругается Windows. Причем MQLInfoInteger(MQL_MEMORY_USED), что в тестере , что в реале выдает считанные мегабайты. Приходиться убирать их тестов высоколиквидные инструменты, что памяти Terminal.exe кушал меньше при тестах.
Я так понимаю все эти вызовы ArrayResize c -1 мне не помогут ?
Мне кажется, проблема в коде (утечка памяти, неосвобождение динамической памяти) или в windows (маленький pagefile?)
Открепляете график (Alt+D) и переносите его на нужный монитор
Это работает только в МТ5 ?
Да.
Ссылки на форуме с предыдущими билдами не работают. У кого есть, просьба выложить.
Я переехал на другой гугл-аккаунт. Новая ссылка вот.
Если нужны другие билды, говорите, есть много.