使用Fraps获取3D程序的FPS
Fraps为免费软件(wiki),通过Hook OpenGL(SwapBuffer)或D3D(Present)来获取目标进程的FPS信息(32位进程注入fraps32.dll,64位注入fraps64.dll),并能进行截图和视频录制。
当前最新版本为3.5.99,最高支持D3D11。通过付费升级,除了截取BMP之外,可截取JPG, PNG和TGA格式图片,且录制的视频不会有水印。
Fraps属于动态挂钩,当进程切到当前窗口,Fraps会自动挂钩到进程上;修改Fraps设置信息会立即生效(注:不用重启游戏或Fraps)。




FPS数值显示与隐藏
通过按F12,来切换FPS数值在游戏界面上的显示位置与隐藏: 左上 -- 右上 -- 左下 -- 右下 -- 隐藏

注:勾选“Only update overlay once a second”,则FPS数值会1秒刷新一次
BenchMark:获取一段时间的运行帧数、时长、FPS平均值、FPS最大值、FPS最小值
① 通过按F11来开始记录,再按F11来结束记录(也可以通过定时的方式来结束:勾选“Stop benchmark after xx seconds”)
a. 若显示出了FPS数值:开始记录时FPS数值的背景色为绿,随即FPS数值会消失,进入记录状态。

再按F11时,FPS数值会又显示出来,背景色为红,字体颜色由白变黄,并根据BenchMark选项来写文件到“Folder to save benchmarks in”所设置的目录中,结束该时间段数据的采集。
b. 若没有显示出FPS数值:只是在UI上没有明显地提示,功能会正常运行,结束后会根据BenchMark选项来写文件到“Folder to save benchmarks in”所设置的目录中。

② “Folder to save benchmarks in”所设置的目录存在,即使没有勾选任何BenchMark选项,结束记录时也会将MinMaxAvg记录添加到FRAPSLOG.TXT中

注1:目录不存在,且没有有勾选任何BenchMark选项,则不会有任何文件记录
注2:只要勾选了BenchMark选项,目录不存在时会创建该目录,并将MinMaxAvg记录添加到FRAPSLOG.TXT中
③ 勾选“FPS”,结束记录时生成形如:“进程名 YYYY-MM-DD hh-mm-ss-ms fps.csv”文件

注:FPS的采集时间间隔为1s
④ 勾选“Frametimes”,结束记录时生成形如:“进程名 YYYY-MM-DD hh-mm-ss-ms frametimes.csv”文件

注:记录每帧起始的时间信息,单位为ms
⑤ 勾选“MinMaxAvg”,结束记录时生成形如:“进程名 YYYY-MM-DD hh-mm-ss-ms minmaxavg.csv”文件

使用Fraps获取3D程序的FPS的更多相关文章
- WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案
目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...
- 如何用Unity创建一个的简单的HoloLens 3D程序
注:本文提到的代码示例下载地址>How to create a Hello World 3D holographic app with Unity 之前我们有讲过一次如何在HoloLens中创建 ...
- C#获取当前程序运行路径的方法集合
//获取当前进程的完整路径,包含文件名(进程名).string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\xxx.exe (. ...
- iOS程序破解——获取.ipa程序包
原文在此 首先肯定不是获取自己的ipa包. 为什么要获取ipa包呢?比如,在仿写一些程序时,避免不了获取它的图片素材等等,那么最快也是最有效的方式就是获取原程序的ipa包.更或者,你想要逆向分析某一款 ...
- winform 获取当前程序运行根目录
// 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...
- 获取应用程序信息.h
//// 获取应用程序信息.h// IOS笔记// 一般会用来判断是否有新版本.是否需要强制更新 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中ta ...
- C --gettimeofday===获取某个程序经历的时间
#include <stdio.h> #include <sys/time.h> #include <time.h> int gettimeofday(struct ...
- Linux中获取当前程序的绝对路径
代码如下: char current_absolut_path[MAX_SIZE] = ""; memset(current_absolut_path,,MAX_SIZE); // ...
- 使用 Intel GPA 与 分析3D程序和抓取模型
原文链接在这里 http://dev.cra0kalo.com/?p=213 背景信息 Intel的GPA本身是一款图形分析软件,并没有设计从3D程序里抓取模型资源的功能,但这里作者是通过hook G ...
随机推荐
- linux取IP的几个方法
ifconfig eth0|grep " inet add"|cut -d":" -f2|cut -d " " -f1 ifconfig e ...
- Android UI(二)DridView的菜单
Jeff Lee blog: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),retain the url when reproduced ! Thanks ...
- Vc数据库编程基础1
Vc数据库编程基础1 一丶数据库 什么是数据库 数据库简单连接就是存储数据的容器. 而库则是一组容器合成的东西. 也就是存储数据的.我们编程中常常会用到数据库. 什么是数据管理系统 数据库管理系统就是 ...
- Java中char和String 的深入理解 - 字符编码
开篇 https://blog.csdn.net/weixin_37703598/article/details/80679376 我们并不是在写代码,我们只是将自己的思想通过代码表达出来! 1 将思 ...
- spring-session用mysql实现session共享实践
前段时间,写了篇<spring-session-data-redis解决session共享的问题>文章,介绍了spring-session使用redis存储实现session共享的内部机制 ...
- 机器学习排序算法:RankNet to LambdaRank to LambdaMART
使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节. 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet ...
- 关于 Uboot 中有趣的 0xdeadbeef 填充
在 Uboot 的 Start.S 中存在以下源码: .globl _start _start: b start_code ldr pc, _undefined_instruction ldr pc, ...
- Apollo 8 — ConfigService 异步轮询接口的实现
源码 Apollo 长轮询的实现,是通过客户端轮询 /notifications/v2 接口实现的.具体代码在 com.ctrip.framework.apollo.configservice.con ...
- HTML+CSS基础(1)-理解什么是HTML和CSS
什么是HTML w3c的解释如下: HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种 ...
- Ubuntu创建新用户的正确姿势
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<Ubuntu 创建新用户的正确姿势>原文地址.更欢迎来我的小站看更多原创内容:godbmw.com,进行&q ...