GUI开发:如何打印帧率
目录
概述
本文记录了如何利用系统时间,打印帧率。
步骤
定义变量和函数
static int i_times = 0;
static unsigned long long i_us;
static struct timeval timeval_begin_fps,timeval_end_fps;
struct timeval *timeval_mark(struct timeval *p_timeval)
{
struct timespec tp;
clock_gettime(CLOCK_REALTIME, &tp);
p_timeval->tv_sec = tp.tv_sec;
p_timeval->tv_usec = tp.tv_nsec/1000;
return p_timeval;
}
/*对两个timeval之间的时间差进行统计*/
long long timeval_count(struct timeval *p_timeval_begin, struct timeval *p_timeval_end)
{
long long i_time = (p_timeval_end->tv_sec - p_timeval_begin->tv_sec)*1000000
+(p_timeval_end->tv_usec - p_timeval_begin->tv_usec);
if(i_times > 0)
return i_time;
else
return 0;
}
初始化
timeval_mark(&timeval_begin_fps);
调用
i_times++;
if(i_times == 25) //每隔 25 帧打印一次
{
timeval_mark(&timeval_end_fps);
i_us = timeval_count(&timeval_begin_fps , &timeval_end_fps);
print("fps =%f\n", (double)i_times/i_us * 1000000);
timeval_begin_fps = timeval_end_fps;
i_times = 0;
}
浙公网安备 33010602011771号