Ошибки, баги, вопросы - страница 1627

 
Alexey Navoykov:
страшно представить сколько бы такой проект собирался в MQL.  Да и в полноценных IDE есть разные режимы компиляции. Вы наверно имеете ввиду релизную сборку,  тогда как большую часть времени нам достаточно дебаг. Но в МТ хрен дождёшься такого.
Плюс там используются предкомпилированные файлы, поэтому последующие сборки будут явно быстрее

на плюсах пишу в обычном gedit, в него же вывел консоль для отладки, отладку провожу напрямую gdb, линковку и сборку делаю так же из консоли gcc, из IDE иногда использую QtCreator, но это когда нужно что то с GUI писать или отлаживать :)

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

 

Alexey Navoykov:
Насчёт ВСЕХ кодов - вы не погорячились? Откуда такая уверенность? Вы их все пробовали?

Много пробовал...

 Ок, как буду у компа, дам какой-нибудь код для воспроизведения.  Но меня уже смущают ваши рассказы про десятки мс на слабом железе.  Мы точно об одинаковых вещах говорим?  Файл скрипта .mq5?  И какой у вас процессор?

Уточню данные, как буду у компа.
 
Slawa:
А что должно возвращать?
Дебаг на истории по какой-то причине поднимает полноценную визуализацию. Поэтому true объясним. Буду дополнительно использовать __DEBUG__. В документации про визуальный дебаг мало говорится.
 
Комментарии, не относящиеся к этой теме, были перенесены в "Помогите с сеточником".
 

В общем порыскал я в кодобазе, пока не нашёл там больших проектов под  MT5.  Но что меня поразило, разделы советников и индикаторов по сути завалены поделками от одного и того же человека.  Причём он их штампует ежедневно по несколько штук на протяжении уже нескольких лет!  Непонятно, откуда такое рвение, и чего ради...  Возможно ему приплачивает MQ за это, хз...  Конечно там всё на одной заготовке штампуется, но меня бы лично уже одно только создание описаний и скриншотов заколебало )

Там у него советники весят около 150-200 кб, но во-первых, код довольно размазан, плюс много повторяющихся фрагментов.  Ну это по моим меркам.  У меня бы оно заняло в несколько раз меньше по объёму.  Так что объём исходников - лишь условный показатель.  Во-вторых, сам код простой, никаких виртуальных функций, шаблонов, а также динамических объектов и указателей.  Т.е. фактически весь код можно заинлайнить.  Компилируется довольно быстро, в районе 600-700 мс.  Ну в общем надо найти реально объёмный и достаточно сложный пример.  А среди моих разработок я лишь тот проект дорабатывал под новый компилятор, все остальные пользую под старым, а тратить время на их корректировку пока не вижу целесообразности, учитывая нынешнюю ситуацию.

 
Alexey Navoykov:

...

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

Последняя версия на текущий момент: Графические интерфейсы IX: Элементы "Индикатор выполнения" и "Линейный график" (Глава 2)

 

О, спасибо.  Сам проект кстати шикарный, и по задумке, и по реализации.  В общем первый тестовый эксперт TestLibrary01 скомпилировался у меня за 6.5 секунд.  Шустро.  Хотя конечно надо ещё будет оценить объём реально используемого кода этим советником.  Да и опять же, слово "шустро" будет выглядеть несколько комично, если сравнить со скоростью компиляции в старом билде.  Там она мгновенная.  Вот если кто хочет сам убедиться, прикладываю компилятор версии 1159.  Только переименуйте файл естественно.

Т.е. фактически вывод можно сделать такой:  длительность компиляции конечно может варьироваться в разы, в зависимости от объёма и сложности кода,  но одно остаётся неизменным - в новом компиляторе она на порядок медленнее, чем в старом.   При этом никакого ощутимого выигрыша в скорости работы программы это не даёт - я проверял.  Если кто хочет доказать обратное - флаг в руки.

Файлы:
 
Alexey Navoykov:

О, спасибо.  Сам проект кстати шикарный, и по задумке, и по реализации.  В общем первый тестовый эксперт TestLibrary01 скомпилировался у меня за 6.5 секунд.  Шустро.  Хотя конечно надо ещё будет оценить объём реально используемого кода этим советником.  Да и опять же, слово "шустро" будет выглядеть несколько комично, если сравнить со скоростью компиляции в старом билде.  Там она мгновенная.  Вот если кто хочет сам убедиться, прикладываю компилятор версии 1159.  Только переименуйте файл естественно.

Т.е. фактически вывод можно сделать такой:  длительность компиляции конечно может варьироваться в разы, в зависимости от объёма и сложности кода.  Но одно остаётся неизменным - в старом компиляторе она на порядок быстрее, чем в новых.   При этом никакого ощутимого выигрыша в скорости работы программы это не даёт - я проверял.  Если кто хочет доказать обратное - флаг в руки.

Самые сложные из моих проектов в MetaTrader 5 конечно тоже долго компилируются. Доходит даже до 11 секунд. Точно такие же версии, но в MetaTrader 4 бывает до 25 раз быстрее.

Для примера, один и тот же проект. 

MetaTrader 5:

0 error(s), 0 warning(s), compile time: 11054 msec              1       1

//---

MetaTrader 4:

0 error(s), 0 warning(s), compile time: 434 msec                1       1

//---

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

 
Anatoli Kazharski:

Самые сложные из моих проектов в MetaTrader 5 конечно тоже долго компилируются. Доходит даже до 11 секунд. Точно такие же версии, но в MetaTrader 4 бывает до 25 раз быстрее.

Для примера, один и тот же проект. 

MetaTrader 5:

//---

MetaTrader 4:

//---

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

У меня есть такое предположение:  из-за того, что МТ4 32-битный, его не постигла печальная участь быть "тотально оптимизированным".  Ведь насколько мне известно, эта горе-оптимизация компилятора была заявлена как якобы улучшающая работу в 64-битной среде.  Надо кстати проверить 32-битную версию МТ5, может с ней всё нормально.   Но у меня сейчас нет такой возможности.

У кого есть 32-битная версия metaeditor для пятёрки, поделитесь плиз.

 
Anatoli Kazharski:

Самые сложные из моих проектов в MetaTrader 5 конечно тоже долго компилируются. Доходит даже до 11 секунд. Точно такие же версии, но в MetaTrader 4 бывает до 25 раз быстрее.

Для примера, один и тот же проект. 

MetaTrader 5:

//---

MetaTrader 4:

//---

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

Это оптимизация кода.

Если в metaeditor.ini в поле [Experts] прописать OPTIMIZE=0 то скорость компиляции будет как в 4-ке. У меня некоторые проекты компилятся по 20 сек, а некоторые входят в бесконечный цикл оптимизации :)