1 / 1 / 0
Регистрация: 01.09.2009
Сообщений: 159
|
||||||
Точность цикла потока и загруженность процессора21.02.2024, 09:30. Показов 9503. Ответов 5
Создаю поток со стабилизацией времени цикла
0
|
21.02.2024, 09:30 | |
Ответы с готовыми решениями:
5
Как только захожу в игру, загруженность процессора упирается в 100%, спустя минут 5 загруженность падает до 10-30% Загруженность процессора 50%
|
259 / 189 / 29
Регистрация: 26.11.2022
Сообщений: 794
|
|
21.02.2024, 10:09 | |
у вас ОС реального времени? скорее всего нет. так что вы можете добиться чего-то подходящего на вашем конкретном компьютере/ОС но на других компах/ОС будет другая ситуация.
ещё неизвестно как поведёт ваш цикл когда комп будет выполнять ещё какую-нибудь программу помимо вашей. ну и неплохо былобы написать зачем такое надо - особенно на какую стабильность вы расчитываете
0
|
259 / 189 / 29
Регистрация: 26.11.2022
Сообщений: 794
|
|
21.02.2024, 11:53 | |
Вот из-за того что на обычной ОС нельзя добиться стабильных задержек приходится делать дополнительные контроллеры - которые получают от компа некоторый минимальный объём информации чтобы они могли проработать пару секунд сами без участия компьютера, поскольку комп не сможет быстро отреагировать и выдать упавляющий сигнал.
Раз уш вы не хотите рассказывать что за аппаратура, какие требования по задержкам - период, джиттер и пр. Критичность задержек, как выдаётся управляющий сигнал - есть ли промежуточный драйвер который может решить что надо подсобрать данные и попозже отправить из пакетом и куча другой инфы. То ответы тоже будут очень пространными и обобщёнными. Не забывает также что разрабатываете вы на современном компе - с хорошим быстродействием, а работать софт будет на самом слабом железе )))
0
|
What a waste!
![]() 1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|
17.04.2024, 01:59 | |
Знаю, что тема немного старая, но я бы посоветовал вместо
sleep_for использовать sleep_until с расчётом времени "просыпания" от начала первой итерации.Момент следующего срабатывания при этом можно получить примерно так: next_activation = start + ((now() - start) / period + 1) * period .Использование sleep_until вместо sleep_for позволит не спать дольше в случае, если поток может быть вытеснен ОС и он будет вытеснен после вычисления таймаута для sleep_for , но до самого sleep а.Расчёт следующей активации от начала первого цикла нивелирует дрифт в периоде, если это важно. Так же, если решите использовать sleep_until , то стоит посмотреть реализацию. Не знаю на счёт boost , но реализация из libstdc++ , например, может использовать системное время для steady_clock .Если можно использовать непереносимое API, то в Linux есть clock_nanosleep c CLOCK_MONOTONIC и TIMER_ABSTIME , или таймеры timerfd .
1
|
1 / 1 / 0
Регистрация: 01.09.2009
Сообщений: 159
|
|
17.04.2024, 08:40 [ТС] | |
Спасибо, протестирую Ваши варианты.
0
|
17.04.2024, 08:40 | |
Помогаю со студенческими работами здесь
6
Загруженность процессора Влияет ли ОС на загруженность процессора? Windows 7 Загруженность процессора
Не понятная загруженность процессора.! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
|
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
|
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
|
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
|
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
|
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
|
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
|
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL.
Что. . .
|
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
|
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
|