Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149

Как синхронизировать основной цикл программы c герцами монитора?

27.03.2018, 06:32. Показов 696. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Встала в полный рост задача ограничить скорость выполнения программы привязав ее к "скорости монитора", то есть если монитор 60 герц - основной цикл должен выполнятся 60 раз в секунду, если монитор 144 герц - 144 раза в секунду.
Много гуглил примеры, использовал Sleep(), std::chrono::high_resolution_clock::now( ), std::this_thread::sleep_for() - полноценного нужного эффекта нет, возникают лишние задержки (не из-за тяжести программы, без задержек основной цикл работает 300 раз в секунду).

Мне нужна достичь именно такого эффекта, который дает включенный V-Sync в Nvidia Control Panel.
Когда я использовал std::this_thread::sleep_for() для получения нужной задержки, моя программа сжирала 7-9% процессора, а когда ограничивал скорость с помощью V-Sync из Nvidia Control Panel - программа сжирает всего 1-2% процессора.

Существует ли в С++ какая-нибудь функция, которая говорит программе заснуть пока монитор на начал заново обновлять кадр? Или какие еще есть способы добиться нужного эффекта?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2018, 06:32
Ответы с готовыми решениями:

Проблема с герцами монитора
Купил монитор LG 24GL600F. Проблема в том, что при выставлении в кс го 144гц 70 фпс в игре, а если поставить 120гц и меньше то 250+фпс....

Lua + C++ - основной цикл программы
Доброго дня, уважаемые. Помогите пожалуйста)) а то чувствую себя как Волк из Ну погоди, из какой то серии, где в отражении была ослиная...

Основной цикл, для работы программы
Вообщем, дело вот в чем решил написать простенькую текстовую игру. Но так как с архитектурой я почему никак не могу подружиться, не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2018, 06:32
Помогаю со студенческими работами здесь

Вызов подпрограммы из основной программы, с сохранением работоспособности основной программы?(подробно внутри)
Добрый день. Буду благодарен, если кто-нибудь подскажет как такое реализовать. Суть вопроса: В основном консольном приложении...

Синхронизировать дополнительный и основной потоки
Использую для работы с Com-портом библиотеку Synapse(Synaser). Из-за большой длины приходящих из порта сообщений во избежание тормозов...

Синхронизировать размер рабочего стола и монитора
здравствуйте. поставил себе Linux Mint 17.3 и столкнулся с такой проблемой, что правая сторона рабочего стола не влазит в монитор,...

Как данные программы синхронизировать профилем на сайте
Всем привет! Такая задача. Нужно чтобы данные с программы синхронизировались с данными на сайте! Допустим ФИО, адрес и т.д. в...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru