Метатрейдер что-то оставляет в памяти и забивает ее ! - страница 2

 
Вобщем у меня планировщик задач nnCron перезапускает МТ4 каждые полчаса.
За неделю оперативная память забивается напрочь. Стартую в начале недели с занятыми 136 Мб ОП - а к концу недели у меня уже занято 209 МБ ОП.

МТ4 что-то оставляет в памяти и не освобождает ее полностью.

Что-то это многовато - 136 Мб...
Лично у меня при 14 парах и порядка 20 открытых окнах, и в каждом по 3-4 индюка - терминал занимает 30, максимум 35-38 Мб (занимаемая прогой память - смотрится в Диспетчере задач).

Зачем перезапускать МТ каждые полчаса? - вот это я не понял... :)

Сильно перегружается память, как я понял - при перелогинивании с одного счета на другой.
А при закрытии программы - действительно освобождается полностью, могу это подтвердить.
Для контроля памяти используйте какие-ниб. дополнит. проги, напр. Free RAM.
 
Вот то что пишет Гермен_Греф совершенно нормально. В одном из терминалов у меня так и есть (хотя и окон более 20 и индикаторов предостаточно), а вот в двух других как раз вот и накапливает во времени до 250Мб, хотя и окон не больше и индикаторов в них.

Вот первый снимок на 01:00 мск, начало сессии понедельника (9 июля) и второй на 09:00, т.е. после ночи при очень слабом потоке котировок.






Slawa Вы пояснили бы несколько вопросов:

1. Может ли это зависить от поставщика платформы (ну там скажем одну скачал с Альпари, другую с MIG Investments, IBFX и т.п.)? Теоретически нет, но все таки.

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

Заметно тормозит имеено видио память, например при открытии другого терминала, или броузера. Бывает вообще окно одно терминала как бы накладывается на другое, или открываешь окно в терминале, а оно не открывается - видна только рамка от него.

3. Каким образом можно определить, что является основным "пожирателем" памяти. Чем можно посмотреть процессы самого МТ и занимаимаю ими память.

4. Во многих программах теханализа есть закладки позволяющие оперетивно переключаться на другой, по сути говоря профайл, и это происходит практически мгновенно. В МТ переход на другой профайл занимает несколько десятков секунд, и зависит от количества окон и индикаторов в них и от текущего потока котировок. На "быстром" рынке переключиться на другой профайл вообще проблемно.
Это естественно неудобно, что и вынуждает держать в одном профайле 15-25 окон, и потом не без труда искать нужный набор поочередно открывая их.
Планируется ли как то решить этот вопрос? Или может какие то советы.

5. Как правильно заново полностью переустановить МТ и при этом оставив без изменения свои настройки (счета с паролями, профайлы, набор окон, индикаторов и т.п. ).

С уважением
 
Вобщем у меня планировщик задач nnCron перезапускает МТ4 каждые полчаса.
За неделю оперативная память забивается напрочь. Стартую в начале недели с занятыми 136 Мб ОП - а к концу недели у меня уже занято 209 МБ ОП.

МТ4 что-то оставляет в памяти и не освобождает ее полностью.

Что-то это многовато - 136 Мб...
Лично у меня при 14 парах и порядка 20 открытых окнах, и в каждом по 3-4 индюка - терминал занимает 30, максимум 35-38 Мб (занимаемая прогой память - смотрится в Диспетчере задач).

Зачем перезапускать МТ каждые полчаса? - вот это я не понял... :)

Сильно перегружается память, как я понял - при перелогинивании с одного счета на другой.
А при закрытии программы - действительно освобождается полностью, могу это подтвердить.
Для контроля памяти используйте какие-ниб. дополнит. проги, напр. Free RAM.


Перезапускаю я МТ4 каждые полчаса, потому что МТ4 у меня работает под виртуальной машиной. Когда хостовая(реальная) машина теряет связь с миром (инетом) - то МТ4 под гостевой машиной(виртуальной ОС) не восстанавливает связь, так как гостевая машина "ходит" в инет через хостовую машину - и между ними связь не обрывается никогда - тоесть гостевая машина считается всегда в он-лайне. Вот поэтому хотелось бы, чтобы разработчик проверял связь с брокером, а не связь с инетом - или дал возможность программно периодически делать рекконект.

Теперь о памяти. МТ4 у меня занимает немного ОП - около 20 МБ. Я говорил, что суммарная занятая ОП у меня 136 Мб, а к концу недели суммарная занятая память 209 Мб - для меня это критично, так как я работаю с ограниченным объемом ОП - и ОП у меня всего 128Мб. Я пробовал освобождать память различными программами-менеджерами памяти : Ram Saver Pro, Free Ram и др. Они не дают нужного эффекта - так как то, что осталось в памяти - считается кому-то нужным и не выбрасывается из памяти.

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

Вопрос в том, - действительно ли все выгружается из памяти - до последнего байта. У меня по моим подсчетам МТ4 за неделю перезагружается 240 раз. Начальный объем ОП = 136 Мб, Конечный объем = 209, Разница = 74752 Кб
74752Кб/240 раз = 311 Кб остается в памяти. Этого на глаз можно не заметить.
 
Уже обсуждали, но я повторю.

Основную память занимают ценовые данные. Каждый бар - по 44 байта. Если на открытом графике 1 млн баров (ничего сверхординарного после того, как мы добавили кнопку "загрузить" в архиве котировок), то этот график съедает 44 мега.
Если графиков несколько, соответственно увеличивается потребляемая память.

Далее. Если на графике прикреплён эксперт, то у этого эксперта есть свой локальный архив котировок. То есть, как минимум на "миллионнике" ещё 44 мега. Если эксперт использует данные чужих символов-таймфреймов, плюсуйте ещё мегабайты. Если эксперт использует индикаторы (конечно же использует!), то ещё по 8 мегов на каждый индикаторный буфер.

Резюме такое. Уменьшайте количество баров на графике. Как же быть при тестировании? Мы специально сделали, что при тестировании могут использоватся все данные, хранимые на диске. Для уменьшения размера используемых данных при тестировании можно задавать ограничивающие даты.
 
Описание 1CAdmin напоминает "секс стоя в гамаке и в противогазе". Совсем неудивительно, что без удовольствия.

Теперь о памяти. МТ4 у меня занимает немного ОП - около 20 МБ.

Если Вы сами сказали, что МТ4 занимает 20Mb, то почему задаете разработчикам столь косвенные вопросы со ссылкой на чрезмерное потребление ресурсов?

ps: как видно, "мягкие" ответы Вас не устраивают. Ресурсы тратят _все_программы_включая_windows_, но вопрос методично ставите только о МетаТрейдере.
 
У меня иногда через некоторое время после запуска терминала (минут 10-15, а то и больше) появялется сообщение ОС, что памяти недостаточно и размер файла подкачки будет увеличен. Я вижу две версии: первая - терминал занимает почти всю память и когда некоторое время спустя ОС приспичит сделать что-то своё, памяти не хватает. Это нормальный вариант. Вторая - и после выхода на "крейсерский режим" терминал всё же продолжает в заметных количествах захватывать память и это на первый взгляд не совсем логично.
 
Ресурсы тратят _все_программы_включая_windows_, но вопрос методично ставите только о МетаТрейдере.


Ренат - я во всем такой дотошный. Прошу не воспринимать мои вопросы враждебно - я всего лишь хочу, чтобы МТ4 был лучше, быстрее, оптимальнее - ведь я работаю на вашей платформе.
Без необходимости я вопросы не задаю. Я практик, а не теоретик.

Мой вопрос можно снять, потому что я решил его с помощью програмки DevCon.exe от микрософта. Теперь я уже не перезагружаю МТ4 каждые полчаса, а включаю/выключаю сеть. Теперь с памятью все ок.
 

1CAdmin
Мой вопрос можно снять, потому что я решил его с помощью програмки DevCon.exe от микрософта. Теперь я уже не перезагружаю МТ4 каждые полчаса, а включаю/выключаю сеть. Теперь с памятью все ок.


С какими параметрами Вы ее запускаете? Пример приведите пожалуйста.

Что значит "включаю/выключаю сеть"? Отключаете соединение с инетом?
Я попробовал в ручную отключил и опять включил - ничего абсолютно не изменилось.
 

Мой вопрос можно снять, потому что я решил его с помощью програмки DevCon.exe от микрософта.

Да, а где эту программку можно взять?
 
Имейте в виду, что в клиентском терминале есть ещё одна фича по освобождению памяти.

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

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