Нужно ли навести порядок с кнопками в оптимизаторе - страница 2

 
Stanislav Korotky:
Уже давно писал в сервис деск по этому поводу. Ничего не изменилось. И вряд ли опрос что-то изменит.

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

BTW сам я ответил "да"

 
Alexey Volchanskiy:

А на этот вопрос отвечал модератор Слава, который тут по программной части. Сказал, что нет технической возможности. Если на самой быстрой скорости вставить виндовый Sleep(0), винда делает переключение на другой поток и далее управление возвращается через стандартные для винды минимум 20 мс. При этом скорость скорость падает катастрофически.

Помню, было предложение покрутить пустые циклы вместо Sleep(), но как-то это замялось. 

Пустые циклы - очень нерационально.  А решение то простое - ставить Sleep не тупо на каждом тике, а только когда этот Sleep действительно требуется.

Допустим если нужна задержка 1 мс между тиками, тогда вставляем Sleep(20) через каждые 20 тиков.  Если 2 мс - то через каждые 10 тиков.

 
Alexey Navoykov:

Пустые циклы - очень нерационально.  А решение то простое - ставить Sleep не тупо на каждом тике, а только когда этот Sleep действительно требуется.

Допустим если нужна задержка 1 мс между тиками, тогда вставляем Sleep(20) через каждые 20 тиков.  Если 2 мс - то через каждые 10 тиков.

Вы представляете, с какой скоростью в визуализаторе просчитываются тики? )) С 20 тиками слипы фактически будут идти один за другим. Хотя я бы на месте разработчиков такую мысль проверил. Только не 20 конечно, а гораздо больше.

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

То есть возможны подергивания экрана.

Конечно, это мое мнение, я не разработчик терминала, слава богу )) 

 
Alexey Volchanskiy:

Вы представляете, с какой скоростью в визуализаторе просчитываются тики? )) С 20 тиками слипы фактически будут идти один за другим. Хотя я бы на месте разработчиков такую мысль проверил. Только не 20 конечно, а гораздо больше.

Скорость просчитывания тиков завивисит, в первую очередь, от сложности советника.  У одного советника тики пролетают пулей, а у другого например 1 тик в секунду :)  Так что по поводу "один за другим" слипов - всё индивидуально.

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

То есть возможны подергивания экрана.

Ну сама винда вряд ли станет выполнять что-то тяжёлое без вашего ведома.  Если только сам запустишь.  Но в любом случае можно приоритеты задать.  Да и мы ведь не в игру играем, чтобы всё прям чётко синхронно было.

 
Alexey Navoykov:

Скорость просчитывания тиков завивисит, в первую очередь, от сложности советника.  У одного советника тики пролетают пулей, а у другого например 1 тик в секунду :)  Так что по поводу "один за другим" слипов - всё индивидуально.

Ну сама винда вряд ли станет выполнять что-то тяжёлое без вашего ведома.  Если только сам запустишь.  Но в любом случае можно приоритеты задать.  Да и мы ведь не в игру играем, чтобы всё прям чётко синхронно было.

Вот, а кто эту сложность будет оценивать? Какое кол-во тиков пропускать для каждого конкретного советника?

Легко. Захотелось ей вдруг память ОЗУ дефрагментировать, пошел своп на диск, если ее не хватает. Да мало ли чего. 

 
Alexey Volchanskiy:

Вот, а кто эту сложность будет оценивать? Какое кол-во тиков пропускать для каждого конкретного советника? 

Так её и не нужно оценивать. Количество тиков - одинаково для всех советников.  В итоге получится, что на медленных советниках выбранная скорость прокрутки влияет меньше,  а на быстрых - наоборот влияет существенно.  Вполне логично.