Существенное замедление работы компьютера при использовании Movment.mq4
- Сжирание большого объема оперативной памяти Metatraderом
- Как это объяснить?
- Что с агентами тестирования
Посмотрел код - это индикатор-убийца. Неужели он нормально работал на других билдах?
Он каждый тик обсчитывает все бары. Чем больше баров на графике - тем сильнее тормоза.
Еще один убийственный индикатор https://c.mql5.com/mql4/forum/2007/11/metaptrader2007.mq4
Не знаю что вы там видите смотря в код, но у меня на каждом тике просчитывается примерно следующее количество баров:
Можете убедиться наглядно.
Нет ли возможности оптимизировать объем используемой памяти? Есть ли возможность запретить свопировать в виртуальную память, когда хватает оперативной?
Сколько баров у вас в окне? Когда тормозит, на запуске только или всегда?
В индикаторе нет ничего особенного ,чтобы забирало много памяти. Конечно используются все 8 буферов, но никаких дополнительных массивов.
Не знаю что вы там видите смотря в код, но у меня на каждом тике просчитывается примерно следующее количество баров:
Можете убедиться наглядно.
Извините, не заметил использование функции IndicatorCounted(), на деле не проверял, поэтому ошибся. Сейчас посмотрел повнимальнее и увидел. так что все нормально. Но причину замедления при переключении попробовал найти под другому, сделал замер времени первоначального расчета индикатора, оно составило для 55 тысяч баров на Core 2 Duo (1.86 ГГц) порядка 300 миллисекунд, что в общем то не смертельно. при последующих тиках время расчета минимально. Поэтому это индикатор не является убийцей, прошу извинить.
2007.11.30 18:02:52 Movment EURUSD,H1: Время обсчета тика 344 ms. Bars=55547
Сколько баров у вас в окне? Когда тормозит, на запуске только
или всегда?
Конечно используются все 8 буферов, но никаких дополнительных
массивов.
Тормоз начинается почти сразу при старте МТ, когда грузится профиль. Основная проблема не столько в скорости работы самого индикатора, сколько в свопировании. На машине 256 Мб оперативки. Win2000. Настройки автозапуска по минимуму. Ничего, кроме МТ и подключения и интернету не запускается. После запуска МТ имеет для этой задачи захват оперативки на уровне 20-30 Мб и захват виртуальной памяти на уровне 40-50 Мб. Остальные задачи работают нормально. А вот МТ тормозит со страшной силой. Это вполне понятно - работа в свопе всегда тормозит. Именно по этому и возник вопрос, нет ли возможности оптимизировать объем используемой памяти? Есть ли возможность запретить свопировать в виртуальную память, когда хватает оперативной?
Перепроверил настройку числа баров в окне. Там действительно стояло нечто (250000)! Уменьшил до 5000. Посмотрю, что будет теперь.