Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 24
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Все локальные переменные распределяются на стеке.
Для каждой функции отводится место на стеке, необходимое для размещения локальных переменных. Эта память освобождается при завершении функции. Если из данной функции производится вызов другой функции, то на стеке отводится место под локальные переменные этой другой функции. При неконтролируемой рекурсии стек исчерпывается очень быстро.
Размер стека MQL-программы заранее ограничен, но не может превышать 64 мегабайта. Если для локальных переменных необходимо более 4 килобайт, то вызывается специальная системная функция _chkstk, которая обеспечивает подгрузку необходимого количества страниц физической памяти в адресное пространство процесса. Вы как любитель замерять время попробуйте измерить время вызова функции, имеющей менее 4к локальных переменных и более 4к (более 8к, более 16к и тд). Узнаете много нового.
Спасибо за подробности. Сделал замеры
Замедления не увидел
ЗЫ Попытался обойти оптимизацию компилятора. Не знаю, вышло или нет.
1. 100 тысяч итераций - это очень мало.
2. При вызове одной и той же единственной функции в цикле вся работа будет произведена на первой итерации. У Вас даже содержимое локальных переменных будет оставаться от предыдущего вызова.
3. Замер сделан неправильно. Начало замера - до начала цикла, конец - после окончания цикла.
1. 100 тысяч итераций - это очень мало.
2. При вызове одной и той же единственной функции в цикле вся работа будет произведена на первой итерации. У Вас даже содержимое локальных переменных будет оставаться от предыдущего вызова.
Ну а как тогда замер произвести?! Там и суммирование и распринтовка. Компилятор должен все честно посчитать.
Ну а как тогда замер произвести?! Там и суммирование и распринтовка. Компилятор должен все честно посчитать.
Начало замера - до начала цикла, конец - после окончания цикла.
Начало замера - до начала цикла, конец - после окончания цикла.
Так и сделано.
Так и сделано.
Я создал простой сервис (Сервисы в Навигаторе + Вставка):
Я могу запустить его с помощью Add Service (почему бы не запустить Service в соответствии со следующими пунктами в меню «Start All», «Stop All»?)
Но я не могу остановить его, используя «Стоп» - только «Удалить» останавливает его, но напоминает мне, что меню удаляют файлы .ex5 и mq5?
Кроме того - из-за отсутствия (прокомментированного) Sleep - я ожидал, что загрузка процессора составит 100% - но ничего?
Я создал простой сервис (Сервисы в Навигаторе + Вставка):
Я могу запустить его с помощью Add Service (почему бы не запустить Service в соответствии со следующими пунктами в меню «Start All», «Stop All»?)
Но я не могу остановить его, используя «Стоп» - только «Удалить» останавливает его, но напоминает мне, что меню удаляют файлы .ex5 и mq5?
Кроме того - из-за отсутствия (прокомментированного) Sleep - я ожидал, что загрузка процессора составит 100% - но ничего?
Ошибка уже исправлена. Ждите обновления.
Большое спасибо.
Тот факт, что ObjectDelete является дорогостоящим процессом,
Если событие OnDeinit прервано более чем на 2,5 секунды
Какие отношения остаются в задаче
Хотя это неизвестно,
Я хотел бы ждать обновлений.
Однако, как инструмент для зарабатывания денег, это неудобно.
А сколько ждать разработчики не уточняли?
К сожалению, сроков не озвучили, я спрашивал.