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;
}
posted @ 2022-07-04 22:42  阿潮  阅读(104)  评论(0)    收藏  举报