Мой подход. Ядро - Движок. - страница 148

 
Oleg Papkov:

Может рассоглассованость: и советник и движок, 1- оба передают друг другу, 2 - оба принимают, их OnTimer циклы не синхронизированны. Ждут момент случайной синхронизации нормальной работы. Может из-за этого?

Нагружается процессор до 40%. Не критично и почти не тормозит, но мне все равно не нравится. Причина пока не ясна. Внутри блока рисования тормозит функция ResourceReadImage и инициализация массива. Если закомментировать цикл, то тормозит ResourceReadImage, если закомментировать ResourceReadImage, то тормозит цикл. Причем, по отдельности они нагружают процессор на 50%, а вместе на 40%. Ерунда какая то...

 

Я хочу снизить частоту текстовых сообщений между движком и советником до 5-раз в секунду (200мс). Человек все равно не успевает уловить смысл изменений цифр быстрее. Поэтому, в скорости изменения 30мс нет практического смысла.

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

 
Реter Konow:
Oleg Papkov:

Может рассоглассованость: и советник и движок, 1- оба передают друг другу, 2 - оба принимают, их OnTimer циклы не синхронизированны. Ждут момент случайной синхронизации нормальной работы. Может из-за этого?

Нагружается процессор до 40%. Не критично и почти не тормозит, но мне все равно не нравится. Причина пока не ясна. Внутри блока рисования тормозит функция ResourceReadImage и инициализация массива. Если закомментировать цикл, то тормозит ResourceReadImage, если закомментировать ResourceReadImage, то тормозит цикл. Причем, по отдельности они нагружают процессор на 50%, а вместе на 40%. Ерунда какая то...

Не могу в этом помочь. Не силен в этой теме. Если по Googl-ить? В поиске "скорость работы resourcereadimage mql4".

 
Oleg Papkov:

Не могу в этом помочь. Не силен в этой теме. Если по Googl-ить? В поиске "скорость работы resourcereadimage mql4".

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

 
Реter Konow:

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

Понятно.

 

Ну, теперь не тормозит. Хотя нагрузка процессора при частоте 30 мс ~40%. При этом, возможно при увеличении площади перерисовки она увеличится (хотя не факт). Нужно проверить с большой таблицей.

Пока вот такой результат работы движка с советником в тестере, на скорости тестирования 31. 

(Нажмите чтобы посмотреть)


Важно, что при закрытии окна нагрузка на процессор сразу падает. 

 
Короче, соберу - посмотрим. Не торопиться с несколькими копиями?
 
Oleg Papkov:
Короче, соберу - посмотрим. Не торопиться с несколькими копиями?

Нет. Кажется я понял причину. Сегодня проверю. Потом сделаю возможность работы с несколькими копиями.

 

Сделана регуляция скорости вывода данных таблиц, для снижения холостой нагрузки на процессор.

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

Теперь, в штатном меню Движка появился новый пункт "Set Values Change Delay", который вызывает окно с регулятором скорости.

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

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


 
Реter Konow:

Сделана регуляция скорости вывода данных таблиц, для снижения холостой нагрузки на процессор.

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

Теперь, в штатном меню Движка появился новый пункт "Values Change Speed Controller", который вызывает окно с регулятором скорости.

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

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


Обычно принято так: смещение ползунка влево уменьшает значения, а вправо - увеличивает. У вас всё наоборот. Истинно Николай намекнул - у вас всё в протесте против всего общепринятого.