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;
}