游戏性能测试总结-基本知识

news/2025/2/5 16:30:20/文章来源:https://www.cnblogs.com/hhs1998/p/18699678

性能测试基本知识

1、FPS/FrameTime

FPS:帧率,每秒的帧数,若游戏帧率是60帧,也就是一秒60帧。

FrameTime:帧的时间,单是ms-毫秒,1秒=1000ms。比如FrameTime平均是25ms,那FPS=1000/25

 

2.GameThread/RenderThread/GPU

FrameTime主要由GameThread/RenderThread/GPU的最大值决定

GameThread是逻辑线程,一般处理游戏逻辑,比如物理,角色的移动,网络收发等。GameThreadTime就是每帧逻辑线程的执行时间,单位是ms

RenderThread是渲染线程,跟渲染有关系,画面的处理,遮挡剔除,距离裁剪,提交渲染等。RenderThreadTime就是每帧渲染线程的执行时间,单位是ms

GPU,渲染线程提交GPU渲染,由GPU绘制最终的画面,提交至屏幕输出。GPUTime就是绘制一帧画面的时间,单位是ms。(显卡的一部分)

 

3.PSO(Pipeline Stage Object)

在游戏第一次安装启动时,运行游戏可能会有卡顿现象,再跑测就不会,实际上卡顿是在编译Shader。shader编译的卡顿有时候我们不希望统计到性能数据里,所以跑测时需要先跑几轮游戏,进行shader预热之后,再采集数据。

 

4.DrawCall

引擎每次提交渲染资源会调用一次Draw函数,DrawCall就是一帧里面,引擎调用Draw的次数,是一个常见的渲染性能指标。DC越多,渲染线程越差

 

5.面数(Triangles)

渲染画面,模型都是由若干个三角面组成的,如下图的兔子,就是有很多三角面。面数越多,模型越精细,视觉效果更逼真。但是面数太多,帧率会下降、内存也会增加

 

6.LOD(Level of Detail)
模型一般都会做分级,比如LOD1面数是3000,LOD2面数是1500,LOD3面数是500。根据实际情况进行切换不同级别的模型,比如远处的模型,不需要这么多细节,可以用LOD3。

 

内存溢出‌与泄漏‌

  • ‌内存溢出‌:当程序申请的内存超过了系统可提供的内存资源时,会发生内存溢出。这通常是因为程序中存在过多的数据结构或对象,导致内存需求超过了物理或虚拟内存的限制。
  • ‌内存泄漏‌:内存泄漏是指程序在分配内存后,由于某些原因未能及时释放,导致内存被长时间占用而无法回收。随着时间的推移,内存泄漏会导致系统可用内存逐渐减少,最终可能影响程序的正常运行或导致系统崩溃。

表现形式

  • ‌内存溢出‌:通常表现为程序突然崩溃或无法执行,伴随有内存不足的错误信息。这是因为程序需要的内存超过了系统能提供的上限。
  • ‌内存泄漏‌:表现为程序运行时间越长,占用内存越多,可能导致程序响应变慢或最终崩溃。内存泄漏不会立即导致程序崩溃,但会慢慢消耗系统资源。

OOM全称叫Out of Memory,内存超过系统的某个阈值限制,会触发程序Crash。OOM的阈值不同机型不一样,以iOS为例,

总内存1G,OOM阈值645M:

  • iPhone6: 645MB/1024MB/62% (iOS 8.x)
  • iPhone6+: 645MB/1024MB/62% (iOS 8.x)

总内存2G,OOM阈值1360-1396M:

  • iPhone6s: 1396MB/2048MB/68% (iOS 9.2)
  • iPhone6s+: 1392MB/2048MB/68% (iOS 10.2.1)
  • iPhoneSE: 1395MB/2048MB/69% (iOS 9.3)
  • iPhone7: 1395/2048MB/68% (iOS 10.2)
  • iPhone8: 1364/1990MB/70% (iOS 12.1)

总内存3G,OOM阈值1790M:

  • iPhone 7P
  • iPhone 8P
  • iPhone X
  • iPhone XR

总内存4G,OOM阈值2040-2080M:

  • iPhone XS
  • iPhone XS Max
  • iPhone XR
  • iPhone 11
  • iPhone 11 Pro/Pro Max
  • iPhone 12
  • iPhone 13

总内存6G,OOM阈值2080M:

  • iPhone 12 Pro/Pro Max
  • iPhone 13 Pro/Pro Max

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 model.ts render中的按钮被点击时将事件传递到vue页面

背景:列表中的字段配置放在model.ts中,models.ts中某个字段可以点击,当点击发生时需要将点击事件传递到vue页面,页面再做出相应处理。 我的model.ts配置的表格列: 再点击button时,该点击事件仅在model.ts内可用,无法传递到外部,所以使用vue的依赖注入方法,代码也比较简…

DeepSeek的崛起:未来5年内,项目管理市场的10大投资机会

一、AI 驱动的智能项目管理平台(一)核心技术与优势随着 DeepSeek 推动 AI 技术的不断突破,智能项目管理平台成为极具潜力的投资方向。这类平台深度融合自然语言处理(NLP)、机器学习(ML)、深度学习(DL)等 AI 技术,实现项目管理全流程的智能化革新。自然语言处理技术让…

db_recovery_file_dest_size满了处理(ORA-19815)附带清理alert日志和trace日志

背景 oracle上生产后常见问题 错误截图ORA-19809: ▒▒▒▒▒˻ָ▒▒ļ▒▒▒▒▒▒▒▒ ORA-19804: ▒޷▒▒▒▒▒ 926934528 ▒ֽڴ▒▒̿ռ▒ (▒▒ 15955132416 ▒ֽ▒▒▒▒▒▒▒) 2025-02-05T14:24:35.312123+08:00 ARC0: Error 19809 Creating archive log file to /…

DC-DC电路如何应用前馈电容?(非原创)

电源是现代电子产品必不可缺的模块,现今大多数的通用电源芯片都会提供如下图所示的反馈引脚,便于客户使用反馈电阻实现所需的输出,简化设计并节省调试时间。但是通用化也从根本上制约了转换器的带宽及瞬态响应能力。这种情况下,设计师可以通过使用前馈电容在一定程度上对此…

Deepseek免费无限量API无需本地部署就可用最大70B蒸馏模型

一、DeepSeek概述 2025年1月20日,DeepSeek正式发布 DeepSeek-R1 模型,并同步开源模型权重。DeepSeek-R1在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。 DeepSeek-V3和DeepSeek-R1两款大模型,成本价格低廉,性能与OpenAI相当,…

17C++循环结构-(do-while循环)2

1、模拟法; 2、纯小数转化为最简分数一、实例 1、模拟法1 在一次风之巅小学文艺汇演中,狐狸老师、尼克、格莱尔同台演出,其中个环节是拍手游戏,狐狸老师每1秒拍一次手,尼克每2秒拍次,格莱尔每4秒拍一次。三人同时开始拍第一次手,每人都拍10次。 试编一程序,算一算观众可听…

智能编码在前端研发的创新应用

今天主要想分享一些关于大模型如何协助我们进行前端编码的实践。首先,让我们以一个前端开发的实例开始。通常,当需要实现一个新的前端功能时,我们会收到相关的背景和需求描述。一、前端开发实例 今天主要想分享一些关于大模型如何协助我们进行前端编码的实践。首先,让我们以…

16C++循环结构-(do-while循环)1

1、do-while 语句; 2、各数位之和; 3、纯小数变整数; 4、数学计算一、do-while 语句 问题:每次测试后狐狸老师总会把成绩输入计算机,进行处理分析。但输入时有时会出错,如当满分为100分时,输入小于0或大于100的数,表示输入有误。试编一程序,输入某一位同学成绩时,自动检查…

MyBatis之日志记录

在mybatis的配置文件中加上1 <settings> 2 <setting name="logImpl" value="STDOUT_LOGGING"/> 3 </settings> 这里value的配置还有很多

杭州开盘数据恢复之希捷移动硬盘突发损坏通电咯吱咯吱敲盘异响

这是一块常见的希捷1T移动硬盘,用户描述说是突然读取异常,呈未响应状态,后来就无法识别了,并发出了嘎嘎的异响声。在当地电脑店检测,判断是磁头坏了,但由于异响声比较大,工程师感觉损坏严重,盘片有划伤,没有太大把握,不敢贸然的去开盘恢复,建议去找更专业的数据恢复…

SAP ABAP 中等待 loading 状态指示函数 SAPGUI_PROGRESS_INDICATOR

函数 SAPGUI_PROGRESS_INDICATOR 用这个函数即可实现左下角图标

Node.js 与 PostgreSQL 集成:深入 pg 模块的应用与实践

title: Node.js 与 PostgreSQL 集成:深入 pg 模块的应用与实践 date: 2025/2/5 updated: 2025/2/5 author: cmdragon excerpt: 随着 JavaScript 在服务器端编程中的兴起,Node.js 已成为构建高性能网络应用程序的重要平台。PostgreSQL 则以其强大的特性以及对复杂数据结构的…