使用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 ...
随机推荐
- mybatis框架(2)---mapper代理方法
mapper代理方法 在我们在写MVC设计的时候,都会写dao层和daoimp实现层,但假如我们使用mapper代理的方法,我们就可以不用先daoimp实现类 当然这得需要遵守一些相应的规则: (1) ...
- spring cloud+.net core搭建微服务架构:服务注册(一)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
- mysql 开发进阶篇系列 3 SQL 优化(索引使用方法)
一. 本章介绍mysql中的索引的分类,存储,使用方法的介绍 1. 索引的存储分类 MyISAM存储引擎的表的数据和索引是自动分开存储的,各自是独立的一个文件, innodb 存储引擎的表的数据和索 ...
- C#版 - LeetCode 148. Sort List 解题报告(归并排序小结)
leetcode 148. Sort List 提交网址: https://leetcode.com/problems/sort-list/ Total Accepted: 68702 Total ...
- 导入项目报错【Minimum supported Gradle version is 3.3. Current version is 2.14.1】
问题描述 导入项目的时候,因为同事的开发环境是Android Studio 2.3.2 Gradle3.3.而我的开发环境是Android Studio 2.2.2 Gradle2.14.1. 所以 ...
- Mybatis 缓存分析
其实本来不想专门的写一篇关于mybatis缓存的博客的.在之前的博客中已经大致的把mybatis的整体流程讲了一遍.只要按照步骤一步步的点进去,关于缓存的代码很容易就能发现.但是今天在看代码的时候突然 ...
- spring-cloud-starter-gateway
********************************************************** Spring MVC found on classpath, which is i ...
- Python爬虫之自制英汉字典
最近在微信公众号中看到有人用Python做了一个爬虫,可以将输入的英语单词翻译成中文,或者把中文词语翻译成英语单词.笔者看到了,觉得还蛮有意思的,因此,决定自己也写一个玩玩~~ 首先我们的爬虫 ...
- JavaScript 图片弹框显示
function fnCreate(src) { /* 要创建的div的classname */ var ClassName = "thumb ...
- C# string数组转int数组
用法 //字符串数组(源数组) string[] sNums = new[] {"1", "2"}; //整型数组(目标数组) int[] iNums; //转 ...