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的更多相关文章

  1. WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案

    目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...

  2. 如何用Unity创建一个的简单的HoloLens 3D程序

    注:本文提到的代码示例下载地址>How to create a Hello World 3D holographic app with Unity 之前我们有讲过一次如何在HoloLens中创建 ...

  3. C#获取当前程序运行路径的方法集合

    //获取当前进程的完整路径,包含文件名(进程名).string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\xxx.exe (. ...

  4. iOS程序破解——获取.ipa程序包

    原文在此 首先肯定不是获取自己的ipa包. 为什么要获取ipa包呢?比如,在仿写一些程序时,避免不了获取它的图片素材等等,那么最快也是最有效的方式就是获取原程序的ipa包.更或者,你想要逆向分析某一款 ...

  5. winform 获取当前程序运行根目录

    // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...

  6. 获取应用程序信息.h

    ////  获取应用程序信息.h//  IOS笔记// 一般会用来判断是否有新版本.是否需要强制更新 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中ta ...

  7. C --gettimeofday===获取某个程序经历的时间

    #include <stdio.h> #include <sys/time.h> #include <time.h> int gettimeofday(struct ...

  8. Linux中获取当前程序的绝对路径

    代码如下: char current_absolut_path[MAX_SIZE] = ""; memset(current_absolut_path,,MAX_SIZE); // ...

  9. 使用 Intel GPA 与 分析3D程序和抓取模型

    原文链接在这里 http://dev.cra0kalo.com/?p=213 背景信息 Intel的GPA本身是一款图形分析软件,并没有设计从3D程序里抓取模型资源的功能,但这里作者是通过hook G ...

随机推荐

  1. mysql 开发进阶篇系列 54 权限与安全(账号管理的各种权限操作 下)

    1. 查看权限 -- 如果host值不是%, 就要加上host值,下面查看bkpuser用户权限(6个权限, 限本地连接) SHOW GRANTS FOR bkpuser@localhost; -- ...

  2. JavaWeb 并发:FOR UPDATE 实战,监测并解决。

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 一.前言 针对并发,老生常谈了.目前一个通用的做法有两种:锁机制:1.悲观锁:2.乐观锁. 但是这篇我 ...

  3. 网络爬虫之html2md

    前言 上周利用java爬取的网络文章,一直未能利用java实现html转化md,整整一周时间才得以解决. 虽然本人的博客文章数量不多,但是绝不齿于手动转换,毕竟手动转换浪费时间,把那些时间用来做些别的 ...

  4. spark之JDBC开发(实战)

    一.概述 Spark Core.Spark-SQL与Spark-Streaming都是相同的,编写好之后打成jar包使用spark-submit命令提交到集群运行应用$SPARK_HOME/bin#. ...

  5. RNN入门(二)识别验证码

    介绍   作为RNN的第二个demo,笔者将会介绍RNN模型在识别验证码方面的应用.   我们的验证码及样本数据集来自于博客: CNN大战验证码,在这篇博客中,我们已经准备好了所需的样本数据集,不需要 ...

  6. 【转载】阿里云Windows服务器重置远程登录密码

    在使用阿里云Windows系统的云服务器的时候,有时候忘记了远程连接密码,可在浏览器上登录阿里云官网,进入ECS云服务器管理后台重置远程连接的密码,因为此步操作对于服务器安全来说关系重大,所以有时候在 ...

  7. MyBatis学习总结(四)——MyBatis缓存与代码生成

    一.MyBatis缓存 缓存可以提高系统性能,可以加快访问速度,减轻服务器压力,带来更好的用户体验.缓存用空间换时间,好的缓存是缓存命中率高的且数据量小的.缓存是一种非常重要的技术. 1.0.再次封装 ...

  8. Opencv-python画图基础知识

    相关函数介绍 1. Point 该数据结构表示了由其图像坐标 和 指定的2D点.可定义为: Point pt; pt.x = 10; pt.y = 8; 或者 Point pt = Point(10, ...

  9. devDependencies与dependencies (转载)

    简单整理: 一.关键词解释 devDependencies用于本地环境开发 dependencies用户发布环境 devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内.通 ...

  10. [Linux] LVS虚拟服务器四层负载均衡

    随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长.服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站.为 ...