Новая версия платформы MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5 - страница 4

 
Forester #:
Отключите оптимизацию и станет быстро. Макс. оптимизацию можно включать для финальной версии советника, для промежуточных отключил, т.к. тоже в разы стало дольше.


Действительно, после отключения оптимизации компиляция проходит за ~1000 мсек, x64 regular включено.

 
Собираю из консоли через /compile. По сравнению с прошлой релизной версией время компиляции выросло почти в 2 раза, объём получившегося ex5 в полтора раза. Так и должно быть?
 
Эта максимальная оптимизация на что влияет? Что именно оптимизируется?
 
Andrei Iakovlev #:
Эта максимальная оптимизация на что влияет? Что именно оптимизируется?

В хелпе есть детальное описание: https://www.metatrader5.com/ru/metaeditor/help/development/compile

Компиляция - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Компиляция — это процесс перевода исходного кода MQL4/MQL5-программы на машинный язык. Ее результатом является создание исполняемого файла...
 
MetaQuotes #:

В хелпе есть детальное описание: https://www.metatrader5.com/ru/metaeditor/help/development/compile

" включайте режим максимальной оптимизации для наилучшей производительности " -  для наилучшей производительности чего?

---

Вы скажите, где находятся те лог файлы, в которых содержится информация про проходившую компиляцию проектов? Я не хочу впустую устанавливать билд 4040.

 
Andrei Iakovlev #:

" включайте режим максимальной оптимизации для наилучшей производительности " -  для наилучшей производительности чего?

---

Вы скажите, где находятся те лог файлы, в которых содержится информация про проходившую компиляцию проектов? Я не хочу впустую устанавливать билд 4040.

Вокруг гонка железа, скорости, пропускной способности, гигагерц, игр, камер и вдруг, "что вы имеете в виду под производительностью?".

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


Для просмотра логов в редакторе кода надо перейти на вкладку "Журнал" и в контексном меню выбрать команду "Открыть".

 
Renat Fatkhullin #:

Для просмотра логов в редакторе кода надо перейти на вкладку "Журнал" и в контексном меню выбрать команду "Открыть".

Я уже написал в сообщении #30, что там нет ничего.

Сейчас я ещё раз открыл эту папку из редактора, закрыл терминал и редактор, удалил все файлы из папки, открыл редактор и скомпилировал 1 программу, закрыл редактор - папка пустая, логов нет.

Выглядит так как будто редактор вообще не пишет логи.

 
Andrei Iakovlev #:

Я уже написал в сообщении #30, что там нет ничего.

Сейчас я ещё раз открыл эту папку из редактора, закрыл терминал и редактор, удалил все файлы из папки, открыл редактор и скомпилировал 1 программу, закрыл редактор - папка пустая, логов нет.

Выглядит так как будто редактор вообще не пишет логи.

Я забыл, результаты компиляции в из окна "Ошибки" не пишутся в /logs/metaeditor.log

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

test.mql5: 0 errors, 0 warnings, 67 msec elapsed, cpu='X64 Regular'
 

Сравнение.

билд 4040

билд 4150


 
Andrei Iakovlev #:

Сравнение.

билд 4040

билд 4150

Хотя я не знаю содержимого ваших файлов, но в билде 4150 добавлен автоматический поиск константных строк в iCustom вызовах:

Такое поведение упрощает написание программ и избавляет от ручного указания #property tester_indicator.

В версии 4040 этого не было.


Я взял один из наших стресс-тестов "Test math operations with const 04.mq5" на 26 мб и получил такие результаты в режиме максимальной оптимизации для x64 Regular:

4040 build:  0 errors, 57967 warnings, 2556 msec elapsed, cpu='X64 Regular'
4150 build:  0 errors, 57967 warnings, 2433 msec elapsed, cpu='X64 Regular'

Надо разбираться. Можете свой код в зип архиве мне в личку послать? Я удалю файлы после тестов.