如何用Python获取第三方应用的原生FPS(帧率)?
获取第三方应用自身FPS的Python方案
方法1:Windows性能计数器(Performance Counters)
很多游戏和图形应用会向Windows性能计数器注册帧率相关指标,无需侵入应用或捕获屏幕,就能通过Python调用Windows的Performance Data Helper(PDH)接口读取数据。
实现步骤:
- 安装依赖:
pip install pywin32 - 找到目标应用的计数器路径:
- 打开Windows「性能监视器」(perfmon.msc),新建数据收集器集,找到目标进程对应的帧率计数器(比如Unity游戏对应
Unity Engine\FPS,Unreal引擎游戏对应Unreal Engine\Frame Rate)
- 打开Windows「性能监视器」(perfmon.msc),新建数据收集器集,找到目标进程对应的帧率计数器(比如Unity游戏对应
- 代码实现:
import win32pdh import time def get_fps(counter_path): query = win32pdh.OpenQuery() counter_handle = win32pdh.AddCounter(query, counter_path) win32pdh.CollectQueryData(query) time.sleep(1) try: while True: win32pdh.CollectQueryData(query) _, value = win32pdh.GetFormattedCounterValue(counter_handle, win32pdh.PDH_FMT_DOUBLE) print(f"当前FPS: {value:.1f}") time.sleep(1) except KeyboardInterrupt: win32pdh.RemoveCounter(counter_handle) win32pdh.CloseQuery(query) # 替换为你找到的目标应用计数器路径 counter_path = r"\Process(Unity.exe)\Unity Engine\FPS" get_fps(counter_path)
方法2:通过DXGI接口读取Swap Chain帧率
对于使用DirectX渲染的Windows游戏,可通过DXGI接口查询应用swap chain的帧统计数据,Python用ctypes调用Windows的DXGI库实现。
核心思路与简化示例:
通过枚举DXGI设备找到目标进程关联的设备,调用IDXGISwapChain::GetFrameStatistics获取帧率。完整实现需处理COM接口细节,以下是简化框架:
import ctypes import time dxgi = ctypes.WinDLL("dxgi.dll") def get_dxgi_fps(process_name): # 此处需补充完整的DXGI设备枚举、进程关联、帧统计查询逻辑 # 参考Windows SDK中DXGI官方示例,用ctypes封装对应接口 while True: # 模拟获取帧率(实际需替换为真实DXGI调用) fps = 60.0 print(f"当前FPS: {fps:.1f}") time.sleep(1) get_dxgi_fps("Game.exe")
方法3:读取游戏控制台/日志输出
部分游戏支持开发者控制台,输入fps或showfps命令会持续输出帧率;若游戏将帧率写入日志文件,也可直接读取日志。
日志读取示例:
import time def read_fps_from_log(log_path): with open(log_path, "r") as f: f.seek(0, 2) while True: line = f.readline() if line and "FPS:" in line: fps = float(line.split("FPS:")[1].strip()) print(f"当前FPS: {fps:.1f}") time.sleep(0.5) read_fps_from_log(r"C:\Games\MyGame\Logs\output.log")
关键注意事项
- 性能计数器方法最易实现,但依赖应用是否注册对应计数器;
- DXGI方法通用性更强,但需处理复杂的Windows COM接口,可能需要管理员权限;
- 控制台/日志方法仅适用于支持该功能的应用;
- 避免屏幕捕获/录屏方案,这类方法延迟高、误差大,与应用自身统计帧率差异明显。
内容的提问来源于stack exchange,提问作者aghcodes
相关产品推荐
相关产品推荐

