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

 
Vladimir Pastushak:

Разработчики не без юмора

По мне так загрузка, а "Закачка" что то типа качать дерево в право или лево.

Если бы "раскачка", то можно было бы и с деревом сравнить: "вправо/влево" - вы тоже с юморком (слитно "вправо/влево")
 
Artyom Trishkin:
Если бы "раскачка", то можно было бы и с деревом сравнить: "вправо/влево" - вы тоже с юморком (слитно "вправо/влево")

"раскачка" в лодке ,

А насчет (слитно "вправо/влево") не мой косяк, а мазилы фаерфокс .

 
Если компилировать файлы в МЕ, лежащие в папке Projects, то скомпилированные файлы создаются в соответствующих папках Experts, Indicators, Scripts. Но если компилировать отдельным компилятором, то этого не происходит - скомпилированные файлы создаются в папке с исходником. Так и должно быть или нужно использовать соответствующие ключи?
 

На символах BR-8.15 и BR-10.15 глючит, остальные периоды BR - нормально.

build 1150 real открытие win7 x64 максимальная

 

Видеофайлы .mp4 в прицепе. 

 

+ на периоде M1 (например)

Если отжать кнопку - "автопрокрутка графика к концу с приходом новых тиков" - график смещается в начало 

затем если нажать  клавишу "END" график на секунду перемещается в конец и опять - график смещается в начало.

Файлы:
br-bag.zip  7609 kb
br-bag2.zip  3720 kb
 
Alexey Navoykov:

Как-то раньше не заострял внимание, но сейчас при работе с большими массивами объектов классов обратил внимание на черезчур большой расход памяти.  Проверил по sizeof() - абсолютно пустой класс занимает 16 байт.  А учитывая, что классы тут управляемые, то добавляем ещё 8 байт на указатель.  Итого 24 байт.  Как-то черезчур накладно.

Залез в документацию и вот что там обнаружил:

Спрашивается:  зачем в простых классах (не участвующих в наследовании) нужна таблица виртуальных функций?  Ведь об этих классах всё известно на этапе компиляции.

Выходит, что методы в них вызываются точно так же, как и виртуальные методы, т.е. идёт дополнительное перенаправление доступа по таблице.   И где же хвалёная оптимизация компилятора?  Как можно после этого заявлять о каком-то сравнении производительности с С++?

Выделенное предположение неверно, через таблицу вызываются только виртуальные методы и моё утверждение верно не только для MQL компилятора.
Кроме того, MQL, некоторые виртуальные вызовы выполняет как вызов обычной функции, не через таблицу.
Как написал Ренат, классы в MQL действительно всегда имеют виртуальную таблицу, которая занимает 8 байт + 8 байт метаинформации.
 
Vladimir Pastushak:

Разработчики не без юмора

По мне так загрузка, а "Закачка" что то типа качать дерево в право или лево.

Спасибо, поправили на "Загрузка".
 
Ilyas:
Выделенное предположение неверно, через таблицу вызываются только виртуальные методы и моё утверждение верно не только для MQL компилятора.
Кроме того, MQL, некоторые виртуальные вызовы выполняет как вызов обычной функции, не через таблицу.
Как написал Ренат, классы в MQL действительно всегда имеют виртуальную таблицу, которая занимает 8 байт + 8 байт метаинформации.
Благодарю за ответ.  Но всё же не могли бы вы пояснить, зачем простому классу, ни от кого не наследуемому, а следовательно не участвующему в виртуализации, нужна таблица?   Ренат упоминал про виртуальные деструкторы, но в рассматриваемом случае ведь виртуализировать нечего. Деструктор всего один, поэтому его тоже можно заинлайнить, разве нет?   Тем самым оставив лишь 8 байт метаданных.
 
Alexey Navoykov:
Благодарю за ответ.  Но всё же не могли бы вы пояснить, зачем простому классу, ни от кого не наследуемому, а следовательно не участвующему в виртуализации, нужна таблица?   Ренат упоминал про виртуальные деструкторы, но в рассматриваемом случае ведь виртуализировать нечего. Деструктор всего один, поэтому его тоже можно заинлайнить, разве нет?   Тем самым оставив лишь 8 байт метаданных.
Если класс не участвует в наследовании, то его деструктор вызывается как обычная, невиртуальная функция и инлайнится, если попадает под критерии инлайна.

Исполняющая система(окружение MQL программы) построена с учётом того, что класс занимает минимум 16 байт.
 
Если компилировать файлы в МЕ, лежащие в папке Projects, то скомпилированные файлы создаются в соответствующих папках Experts, Indicators, Scripts. Но если компилировать отдельным компилятором, то этого не происходит - скомпилированные файлы создаются в папке с исходником. Так и должно быть или нужно использовать соответствующие ключи?
 

билд 854 винда 10 64 х

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

Опробавано закрыте через среднюю клавишу мыши и через контекстное меню ...