Python Timer和TimerFPS计时工具类

yizhihongxing

Python Timer和TimerFPS计时工具类是Python中常用的计时工具,用于测量代码运行时间和帧率。

Python Timer

Python Timer是Python中内置的计时工具,通过time模块的time()函数和perf_counter()函数来实现。

  • time()函数返回从1970年1月1日至今的秒数,可用于计算整个程序的运行时间;
  • perf_counter()函数返回当前时间与计时器被初始化以来经过的秒数,可用于计算代码段的运行时间。

示例1:计算整个程序的运行时间

import time

start_time = time.time()  # 记录程序开始时间

# 代码段
for i in range(100000):
    pass

print("Time used:", time.time() - start_time, "s")  # 计算运行时间并打印出来

输出:

Time used: 0.007021427154541016 s

示例2:计算代码段的运行时间

import time

start_time = time.perf_counter()  # 记录代码段开始执行时的时间

# 代码段
for i in range(100000):
    pass

print("Time used:", time.perf_counter() - start_time, "s")  # 计算代码段的运行时间并打印出来

输出:

Time used: 0.00478785399999999 s

TimerFPS计时工具类

TimerFPS计时工具类是一个用于测量帧率的计时工具,它通过pygame的Clock类和time模块的perf_counter()函数来实现。

import pygame
import time

class TimerFPS:
    def __init__(self, screen):
        self.clock = pygame.time.Clock()
        self.screen = screen

    def start(self):
        self.last_tick = time.perf_counter()

    def tick(self):
        self.clock.tick()
        self.caption = "FPS: {:.2f}".format(self.clock.get_fps())
        pygame.display.set_caption(self.caption)

        current_tick = time.perf_counter()
        self.elapsed_time = current_tick - self.last_tick
        self.last_tick = current_tick

    def sleep(self, fps):
        frame_time = 1 / fps - self.elapsed_time
        if frame_time > 0:
            time.sleep(frame_time)
        else:
            print("Warning: FPS lower than expected!")

调用示例:

import pygame
from timerfps import TimerFPS

pygame.init()

screen = pygame.display.set_mode((640, 480))
timer = TimerFPS(screen)

while True:
    timer.start()

    # 代码段
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    timer.tick()
    timer.sleep(60)  # 限制帧率为60

在示例中,创建了一个名为timer的计时工具类实例,start()方法用于开始计时,tick()方法用于计算帧率并进行屏幕刷新,sleep()方法用于限制帧率。在代码段中,通过event.get()获取pygame的事件并进行处理。程序在运行时,通过使用 sleep() 方法,可以将 fps 限制在 目标 fps 值以内。如果计算得到的 fps 超过了目标 fps 值,则会休眠该计算得到的时间长短,以等待下一帧,以控制帧率。

通过使用TimerFPS,可以精确地测量帧率并控制程序的运行速度。

以上就是Python Timer和TimerFPS计时工具类的详细讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Timer和TimerFPS计时工具类 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python基于openpyxl生成excel文件

    下面我将为您详细讲解python基于openpyxl生成excel文件的完整实例教程。 准备工作 首先,我们需要安装openpyxl模块,可以在命令行中使用以下命令进行安装: pip install openpyxl 创建excel文件 接下来,我们可以在Python中使用openpyxl模块来创建Excel文件。下面是一个简单的示例,通过openpyxl创…

    python 2023年5月13日
    00
  • Python Django 封装分页成通用的模块详解

    在Django中,我们可以使用分页功能来处理大量数据。为了方便重复使用,我们可以将分页功能封装成通用的模块。以下是一个详细的攻略,包含了封装分页功能的步骤和示例。 1. 安装Django 在开始之前,我们需要安装Django。可以使用以下命令安装Django: pip install Django 2. 创建分页模块 我们可以创建一个名为pagination…

    python 2023年5月15日
    00
  • Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析

    下面就来详细讲解一下Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块的用法: shelve模块 shelve模块是一个简易的对象持久化存储模块,用于将Python对象持久化到磁盘上,读取时可以直接还原成对象。shelve模块的主要接口是open()函数。 用法示例 import shelve…

    python 2023年6月2日
    00
  • Python爬虫技术

    Python爬虫技术 Python爬虫技术是通过编写程序,自动从互联网上爬取数据并进行处理分析的技术。Python作为一种功能强大、语法简洁、易于学习的编程语言,被广泛应用于爬虫领域。 爬虫的基本流程 1. 确定爬取的目标和方式 在开始爬虫的过程中,首先需要明确爬虫的目标和方式。需要明确爬取的数据类型、要爬取的网站、爬虫的频次等等。 2. 构造URL和请求 …

    python 2023年5月14日
    00
  • python操作mysql、excel、pdf的示例

    Python 作为一门强大的脚本语言,可以方便地对各种常见文件格式进行操作,比如 MySQL 数据库、Excel 表格和 PDF 文件。下面将针对这三种文件格式,提供 Python 的示例代码和详细说明。 Python 操作 MySQL 数据库 MySQL 是一种流行的关系型数据库,Python 可以方便地通过第三方库 pymysql 来实现对 MySQL …

    python 2023年5月13日
    00
  • python读取文件指定行内容实例讲解

    Python读取文件指定行内容是一个非常实用的技巧,在处理较大的文件时特别有效。下面是完整攻略: 步骤1:打开文件 首先,我们需要打开文件并读取内容。使用Python内置的open()函数可以打开文件并把文件内容读取到一个字符串中。这是一条python代码示例: with open(‘test.txt’, ‘r’) as file: contents = f…

    python 2023年6月5日
    00
  • Python调整matplotlib图片大小的3种方法汇总

    我将针对网站主题“Python调整matplotlib图片大小的3种方法汇总”给出完整的攻略,以下是具体步骤: 1. 添加必要的库 在进行图片大小调整之前,需要导入必要的库——matplotlib和numpy。请在脚本首部添加如下代码: import matplotlib.pyplot as plt import numpy as np 2. 生成示例图片 …

    python 2023年5月18日
    00
  • 在 python / scikit 图像中获取图像的熵? [关闭]

    【问题标题】:Getting entropy of image in python / scikit image? [closed]在 python / scikit 图像中获取图像的熵? [关闭] 【发布时间】:2023-04-04 10:53:01 【问题描述】: 我注意到 Matlab 有一个 straightforward function 用于获取…

    Python开发 2023年4月6日
    00
合作推广
合作推广
分享本页
返回顶部