есть мысль, что внезапно виноват IsStopped(); Вложенные циклы, долгие вычисления и он там часто насажен (чтобы принудительная выгрузка работала без нареканий и задержек).
если у IsStopped() внутри есть yield , то он переключает контексты и будет именно такая картина как наблюдается.
Подтвердите, тогда надо будет как-то прореживать обращения к нему.
почему нет нагруженного ядра ? активные вычисления в цикле по идее должны были нагрузить одно ядро.
Ответ не полный, о частности, но...
ОС не нагружает одно ядро. Даже одна активная задача распределяется на разные ядра. Не смотрите графики нагрузки по отдельным ядрам.
Ответ не полный, о частности, но...
ОС не нагружает одно ядро. Даже одна активная задача распределяется на разные ядра. Не смотрите графики нагрузки по отдельным ядрам.
нить не должна так часто мигрировать и простаивать, да ещё и видимо с дегрейтом приоритета.
сплошные вычисления везде и всегда нагружают проц. Иначе зачем он нужен, он для этого сделан, вычисления вычислять.
скрипт MT5, много-много вычисляет больше 5-ти минут..
просто математика, можно сказать арифметика.
По подготовленным в памяти массивам, без обращений к истории, чарту и торговле
но что-то странное :
почему нет нагруженного ядра ? активные вычисления в цикле по идее должны были нагрузить одно ядро. А пики на скриншоте, они в основном от самого скриншота и броузера.
или точнее так :
что надо сделать, чтобы вычисления в скрипте взяли максимальную нагрузку ? и соотв. завершились быстрее
Операционка может перебрасывать нагрузку с одного ядра на другое. Смотрите общую загрузку, должно находится около 1/16, то есть 6% плюс другие процессы
субъективно (без замеров, возможен эффект наблюдателя и выдавание ожидаемого за действительное)
но IsStopped() способствует миграции с ядра на ядро..
вот так получается когда он в меру прорежен
всё менее хаотичное и прямо видно.
если совсем убрать, то полосочки/столбики становятся шире (мигрируют реже). Но это неюзабельно, так скрипт не снять, а он считаться может несколько часов
тогда надо будет как-то прореживать обращения к нему.
ну уберите проверку IsStopped() в условии цикла, проверяйте по любому счетчику, примерно так:
if(++cnt % 1000 == 0) { if(IsStopped()) break; // или return; }
ну уберите проверку IsStopped() в условии цикла, проверяйте по любому счетчику, примерно так:
так и делал. Последний скриншот именно с подобным прореживанием
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
скрипт MT5, много-много вычисляет больше 5-ти минут..
просто математика, можно сказать арифметика.
По подготовленным в памяти массивам, без обращений к истории, чарту и торговле
но что-то странное :
почему нет нагруженного ядра ? активные вычисления в цикле по идее должны были нагрузить одно ядро. А пики на скриншоте, они в основном от самого скриншота и броузера.
или точнее так :
что надо сделать, чтобы вычисления в скрипте взяли максимальную нагрузку ? и соотв. завершились быстрее