C++笔记之while循环的帧率监测与控制
code review!
 
文章目录
- C++笔记之while循环的帧率监测与控制
- 1.两个时间相关的类
- 2.例程
- 3.运行
- 4.代码
 
1.两个时间相关的类

2.例程

3.运行

4.代码
// 帧率监测与控制程序
#include <chrono>
#include <iostream>
#include <thread>
int main() {
    const double targetFrameRate = 60.0;                      // 目标帧率(帧/秒)
    const double targetFrameDuration = 1.0 / targetFrameRate; // 目标帧持续时间(秒)
    while (true) {
        auto startTime = std::chrono::high_resolution_clock::now();
        // 在此处放置您要监测帧率的程序代码
        std::this_thread::sleep_for(std::chrono::seconds(1));
        // ...
        auto endTime = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double> frameDuration = endTime - startTime;
        // 计算实际帧率
        double actualFrameRate = 1.0 / frameDuration.count();
        // 打印实际帧率
        std::cout << "Actual Frame Rate: " << actualFrameRate << " fps" << std::endl;
        // 如果实际帧率低于目标帧率,可以采取相应措施
        if (actualFrameRate < targetFrameRate) {
            std::cout << "Frame rate is below target." << std::endl;
            // 可以进行适当的处理,例如调优程序或降低渲染质量等
        }
        // 等待,以使每个循环迭代的持续时间达到目标帧持续时间
        std::this_thread::sleep_for(std::chrono::duration<double>(targetFrameDuration - frameDuration.count()));
    }
    return 0;
}



















