Ошибки, баги, вопросы - страница 3561
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
for и while (while с большей вероятностью). Если загрузка процессора близка к 100%
циклы сами по себе могут сделать нагрузку близкую к 100%.. например пустой цикл :-)
просто не надо цикле опрашивать состояние, оно не поменяется. Если в советнике есть "while не_пришёл_следующий_тик {...}" то вы делаете что-то не то и не так
циклы сами по себе могут сделать нагрузку близкую к 100%.. например пустой цикл :-)
просто не надо цикле опрашивать состояние, оно не поменяется. Если в советнике есть "while не_пришёл_следующий_тик {...}" то вы делаете что-то не то и не так
циклы сами по себе могут сделать нагрузку близкую к 100%.. например пустой цикл :-)
просто не надо цикле опрашивать состояние, оно не поменяется. Если в советнике есть "while не_пришёл_следующий_тик {...}" то вы делаете что-то не то и не так
Вот неправильные пчёлы:
А вот правильные:
Вот неправильные пчёлы:
А вот правильные:
когда ваши "правильные пчёлы" будут не в OnStart() а в OnTick() то принесут они отнюдь не мёд ;-)
будет ситуация близкая к описываемой Андреем, всё встанет колом.
не надо в событийно управляемом софте ( в советнике, где всё на обработчиках OnXXX ) делать циклы ожидания событий.
когда ваши "правильные пчёлы" будут не в OnStart() а в OnTick() то принесут они отнюдь не мёд ;-)
будет ситуация близкая к описываемой Андреем, всё встанет колом.
не надо в событийно управляемом софте ( в советнике, где всё на обработчиках OnXXX ) делать циклы ожидания событий.
А зачем делать в OnTick() зацикленные вещи? Что Вы мне прописные истины рассказываете?
не надо в событийно управляемом софте ( в советнике, где всё на обработчиках OnXXX ) делать циклы ожидания событий.
При работе с событиями - да, всё верно и понятно. Но проблема может возникнуть там, где её совсем не ожидаешь, например, в каких нибудь математических расчётах (в том же алглиб активно и повсеместно используются while).
А зачем делать в OnTick() зацикленные вещи? Что Вы мне прописные истины рассказываете?
это ты начал сыпать прописью про пчёл и разгрузку длинных циклов переключением контекста (слипом)..там кстати можно было обойтись https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-switchtothread
При работе с событиями - да, всё верно и понятно. Но проблема может возникнуть там, где её совсем не ожидаешь, например, в каких нибудь математических расчётах (в том же алглиб активно и повсеместно используются while).
с нехорошими фризами сталкивался когда баловался с канвасом. Полноэкранный Canvas вполне втормозит весь терминал. Если ещё и RDP то гарантированно
Может CUDA подвести, считать на видяхе это быстро и удобно, но она одна.
с нехорошими фризами сталкивался когда баловался с канвасом. Полноэкранный Canvas вполне втормозит весь терминал. Если ещё и RDP то гарантированно
Может CUDA подвести, считать на видяхе это быстро и удобно, но она одна.
Нет, речь не о проблемном тяжёлом цикле (он не делает нагрузку на проц), а в том, что терминал блокирует выполнение программы в теле while тогда, когда проц сильно загружен другими процессами, например, агентами при оптимизации. Если нет других нагрузок на проц, то программа с while не зависает и даже не оказывает существенной нагрузки на процессор. Возможно дело в том, что терминал это делает специально, что бы гарантировать свою собственную (терминала) бесперебойную работу.
Т.е., проблема программы с while может проявляться когда процессор загружен другими процессами. Частично помогает рукопашное повышение приоритета процессу терминала. Ещё помогает оставление хотя бы одного агента невключенным.