Немного про Comment - страница 2

 

С выводом в комментарий: Завершено за 221079 ms

Если вместо комментария x++: Завершено за 16 ms

 

Тип ЦП QuadCore Intel Core 2 Quad Q6600, 2400 MHz (9 x 267)

Системная память 2048 Мб (DDR2-800 DDR2 SDRAM)

 

Это СКРИПТ.


Симптомы те же. В нижних строках - "нетронутый", в верхних строках "потроганный".

 
YuraZ писал (а) >>

в тестах - если советник отлажен для скорости при оптимизациях разумно конечно отключать распринтовку и коменты

и тут очень бы помогла условная компиляция которой увы нет в MQL4

и я так понимаю что увы ее не включат в MQL5

пока приходится лазить по тексту и вырубать


Зачем условная компиляция и зачем что-то вырубать, если есть функция IsTesting()?

 
Renat писал (а) >>

 Ну никак не получается больше 100-200 миллисекунд на 10 000 выводов Comment. И так пробовал и этак...

Вероятно, что у вас на машине появление окна алерта и перерисовка экрана как раз и занимает то самое время, за которое цикл успевает прогнаться. В результате вы скорее всего не видите вывода всех цифр на экран. Например у меня лично отсчет в углу экрана иногда появляется не с начала, а с 3000 итерации. Получается, что до 3000 итерации экран "занят" выводом того самого алерта и перерисовкой.

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

sergeev, возьмите указанный мною код, поместите его в скрипт (именно в скрипт, а не эксперта), однократно бросьте на график, а потом опубликуйте результат.

Ну не совсем уж я такой (.)(.), чтоб скрипт не отличать от эксперта. Результат вы мой видели.

Файлы:
comment.mq4  1 kb
 
sergeev писал (а) >>

Вероятно, что у вас на машине появление окна алерта и перерисовка экрана как раз и занимает то самое время, за которое цикл успевает прогнаться. В результате вы скорее всего не видите вывода всех цифр на экран. Например у меня лично отсчет в углу экрана иногда появляется не с начала, а с 3000 итерации. Получается, что до 3000 итерации экран "занят" выводом того самого алерта и перерисовкой.

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

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

 
SK. писал (а) >>

Но это - только домыслы.

 с 99% вероятности.

 

Атлон х2 6000+, 1Гб  (эксперт)

 

Сдается мне, что sergeev тестировал не скорость выполнения функции Comment(), а скорее свою видеокарту. Ибо функция Comment() при обычной работе вызывает принудительную перерисовку активного окна. В результате работы этого скрипта приходится смотреть на 10 000 перерисовок экрана, а не на фактическое присвоение какой-то простой строки в поле коммента.

Специально прогнал тест на старом ноутбуке со слабым процессором и слабой видеокартой (Windows XP, одноядерный мобильный проц T1350 1.86Ghz, RAM 512Mb, встроенное интеловское видео) и получил видимость смены номеров комментов в окне и время на уровне 31 700 миллисекунд. Потом скопировал полностью каталог терминала на другой старый компьютер (Windows XP, P4 3.4Ghz, RAM 2Gb, видео ATI 9600/X1050), запустил на том же графике тот же скрипт и получил 93 миллисекунды.


Вот и объяснение - на встроенных видеокартах функции отрисовки экрана тормозят из-за отсутствия аппаратной ускорения.

На всякий случай повторю еще раз:

В режиме тестирования функция Comment() вообще не вызывает перерисовку окна, фактически не занимая никакого времени, а в режиме оптимизации параметров эта функция полностью игнорируется. Это сделано специально, чтобы ускорить работу тестера и оптимизатора. Ряд "бесполезных" функций специально ограничиваются в функционале при тестировании или оптимизации.
 

Core 2 Duo E4700 2,6GHz. Встроенная видеокарта.