游戏性能指标

摘要:
对不同主流机器根据不同硬件能力建立高、中、低等多档性能指标,游戏按照该指标对应多个画质选项进行适配。

对不同主流机器(一般来自TOP20配置,覆盖90%以上的设备)根据不同硬件能力建立高、中、低等多档性能指标,游戏按照该指标对应多个画质选项进行适配。

CPU负载:一帧内执行的指令数

GPU负载:一帧内执行的shader指令数

FPS:游戏每秒运行的帧数

① GPU瓶颈

影响因素有:DrawCall数、shader复杂度、纹理采样、透明物件、OverDraw、RenderState频繁切换

使用GPA等进行截帧分析

② CPU瓶颈

影响因素有:游戏逻辑、剔除算法、Cache Missing

使用VTune等进行函数耗时分析

③ 传输瓶颈

影响因素有:VBO(Vertex Buffer Object)顶点数据量

卡顿:发生瞬间掉帧的次数

内存:包括虚拟内存和物理内存

① 虚拟内存

Private Bytes // 进程Committed的虚拟内存字节数 对应win7任务管理器中的【提交大小】,资源管理器中的【提交】

PeakPrivate Bytes // 进程Committed的虚拟内存的最高峰字节数

Virtual Size// 进程Reserved的虚拟地址空间字节数

Page Faults // 发生过的缺页中断次数 对应win7任务管理器中的【页面错误】

虚拟内存地址空间碎片 // 不可用的虚拟内存空间,造成的原因有:

a. windows保留虚拟地址空间起始地址必须是系统分配粒度的整数倍(64KB),大小必须是系统页面大小的整数倍(4KB)

b. windows提交虚拟地址空间起始地址和大小必须是系统页面大小的整数倍(4KB)

② 物理内存

Working Set = WS Private + WS Shareable // 进程占用物理内存总字节数 对应win7任务管理器中的【工作设置(内存)】,资源管理器中的【工作集】

WS Private// 进程独享的物理内存字节数(如:堆内存+栈内存+cow机制创建的内存) 对应win7任务管理器中的【内存(专用工作集)】,资源管理器中的【专用】

WS Shareable // 进程可与其他进程共享的物理内存字节数(如:exe及dll代码段、数据段等) 对应win7资源管理器中的【可共享】

WS Shared // 进程已与其他进程共享的物理内存字节数,WS Shared<=WS Shareable

// 若只启动一个exe实例,那么exe的代码段、数据段等不会被共享,因而就不统计在WS Shared中

Peak Working Set//物理内存的最高峰字节数 对应win7任务管理器中的【峰值工作设置(内存)】

物理内存碎片:// 不可用的物理内存,包括内部碎片(能明确指出属于哪个进程)和外部碎片(不属于任何进程)。

内部碎片 -- 对象内存对齐

外部碎片 -- 与页面分配算法有关,频繁的分配与回收内存会导致大量的、连续且小的页面块夹杂在已分配的页面中间

③ 托管内存:

函数级别GC Alloc大小与次数

④ 内存相关的问题

a. 32位系统虚拟内存地址空间不足

b. 内存泄漏

c. 托管内存用完引用不释放导致无法被gc回收

d. 频繁的GC Alloc引发性能问题

e. 内存碎片

f. 内存越界(栈溢出、堆破坏等)

资源

资源管理、资源重复率、资源大小、资源动态下载、资源加载卡顿、资源句柄泄露

显存:纹理、VBO、shader

包体大小:游戏安装包大小(初始安装包、资源包、动态静默下载)

启动速度:游戏启动到可交换界面的时间

载入地图速度:进入游戏地图的时间

网络响应速度:建立连接的速率、网络传输的速率、服务器的性能

手游特有指标:

弱网络:由于网络制式(2G/3G/4G/wifi)之间网速差异大,用户地理位置变动使得网络发生切换,信号被遮挡后强度减弱,人口密集区网络拥塞严重,从而导致网络出现抖动、延时、丢包,甚至断线

具体应对措施:客户端超时重发(每条消息都带唯一ID)、心跳包探测、断线重连(简化登录鉴权,不用走完整登录流程)、客户端发生crash下次进入提示重回;服务器延迟下线机制

流量:单位时间内通过网卡的数据总量

具体应对措施:a. 紧凑协议结构 b. 去掉本地可以计算得到的数据 c. 协议压缩 d. 协议合并 e. 按照优先级来设定不同包的发送频率

电量:单位时间内消耗的电荷数量

温度:手机发烫程度

免责声明:文章转载自《游戏性能指标》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇怎样生成一个顶点迭代器(MItMeshVertex)Halcon学习之两幅图像处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转载)Cocos2dx-OpenGL ES2.0教程:初识MVP(3)

在上一篇文章中,我在介绍vertex shader的时候挖了一个坑:CC_MVPMatrix。它其实是一个uniform,每一个cocos2d-x预定义的shader都包含有这个uniform, 但是如果你在shader里面不使用这个变量的话,OpenGL底层会把它优化掉。 但是,CC_MVPMatrix是在什么时候设置进来的呢?我在shader里面明...

jvm内存设置

JVM有很多个内存管理命令,总体而言,分为两类:   1、-X开头的管理命令:这些选项在JDK升级时不会通知修改;   2、-XX开头的管理命令:这些选项不够稳定,所以建议少用。 JVM参数的含义:   参数名称 含义 默认值   -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆...

JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

Xmn Xms Xmx Xss有什么区别?Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。 -Xms 堆内存的初始大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn -Xss...

C# 自定义弹窗提醒

classShaderBox { privateForm _shader; privateForm _parent; privateForm _child; publicShaderBox(Form parent, Form child) {...

Linux内存管理(转)

一、内核空间 1.1 页 页(page)是内核的内存管理基本单位。 ==> linux/mm_types.h 1 struct page { 2 page_flags_t flags; 页标志符 3 atomic_t _count; 页引用计数 4 atomic_t _mapcount;...

DMAR 与 IOMMU

http://linuxperf.com/?p=67 支持虚拟化技术的硬件平台主要做两件事,一个是DMA Remapping,将DMA请求中的Guest的物理地址映射到Host的物理地址,另一个是中断Remapping,将能remappable的中断请求根据由VMM设置,位于内存的IRT(Interrupt Remapping Table)发送到指定的vc...